fixed test cases: www.epfl.ch seems to change again the static IP address, tests rewritten using dynamic mechanism (via resolver).

pull/2101/head
sebres 2018-04-04 15:24:59 +02:00
parent e786dbf132
commit 02bae2962d
1 changed files with 31 additions and 14 deletions

View File

@ -25,6 +25,7 @@ __license__ = "GPL"
from __builtin__ import open as fopen from __builtin__ import open as fopen
import unittest import unittest
import os import os
import re
import sys import sys
import time, datetime import time, datetime
import tempfile import tempfile
@ -43,7 +44,7 @@ from ..server.ipdns import DNSUtils, IPAddr
from ..server.mytime import MyTime from ..server.mytime import MyTime
from ..server.utils import Utils, uni_decode from ..server.utils import Utils, uni_decode
from .utils import setUpMyTime, tearDownMyTime, mtimesleep, with_tmpdir, LogCaptureTestCase, \ from .utils import setUpMyTime, tearDownMyTime, mtimesleep, with_tmpdir, LogCaptureTestCase, \
CONFIG_DIR as STOCK_CONF_DIR logSys as DefLogSys, CONFIG_DIR as STOCK_CONF_DIR
from .dummyjail import DummyJail from .dummyjail import DummyJail
TEST_FILES_DIR = os.path.join(os.path.dirname(__file__), "files") TEST_FILES_DIR = os.path.join(os.path.dirname(__file__), "files")
@ -424,19 +425,35 @@ class IgnoreIPDNS(LogCaptureTestCase):
self.jail = DummyJail() self.jail = DummyJail()
self.filter = FileFilter(self.jail) self.filter = FileFilter(self.jail)
def testIgnoreIPDNSOK(self): def testIgnoreIPDNS(self):
self.filter.addIgnoreIP("www.epfl.ch") for dns in ("www.epfl.ch", "example.com"):
self.assertTrue(self.filter.inIgnoreIPList("128.178.222.69")) self.filter.addIgnoreIP(dns)
self.filter.addIgnoreIP("example.com") ips = DNSUtils.dnsToIp(dns)
self.assertTrue(self.filter.inIgnoreIPList("93.184.216.34")) self.assertTrue(len(ips) > 0)
self.assertTrue(self.filter.inIgnoreIPList("2606:2800:220:1:248:1893:25c8:1946")) # for each ip from dns check ip ignored:
for ip in ips:
def testIgnoreIPDNSNOK(self): ip = str(ip)
# Test DNS DefLogSys.debug(' ++ positive case for %s', ip)
self.filter.addIgnoreIP("www.epfl.ch") self.assertTrue(self.filter.inIgnoreIPList(ip))
self.assertFalse(self.filter.inIgnoreIPList("127.178.222.69")) # check another ips (with increment/decrement of first/last part) not ignored:
self.assertFalse(self.filter.inIgnoreIPList("128.178.222.68")) iparr = []
self.assertFalse(self.filter.inIgnoreIPList("128.178.222.70")) ip2 = re.search(r'^([^.:]+)([.:])(.*?)([.:])([^.:]+)$', ip)
if ip2:
ip2 = ip2.groups()
for o in (0, 4):
for i in (1, -1):
ipo = list(ip2)
if ipo[1] == '.':
ipo[o] = str(int(ipo[o])+i)
else:
ipo[o] = '%x' % (int(ipo[o], 16)+i)
ipo = ''.join(ipo)
if ipo not in ips:
iparr.append(ipo)
self.assertTrue(len(iparr) > 0)
for ip in iparr:
DefLogSys.debug(' -- negative case for %s', ip)
self.assertFalse(self.filter.inIgnoreIPList(str(ip)))
def testIgnoreCmdApacheFakegooglebot(self): def testIgnoreCmdApacheFakegooglebot(self):
unittest.F2B.SkipIfCfgMissing(stock=True) unittest.F2B.SkipIfCfgMissing(stock=True)