Skip to content

Commit b0726a8

Browse files
author
ldx
committed
Add tests for alias and real_name.
1 parent 700063c commit b0726a8

2 files changed

Lines changed: 81 additions & 11 deletions

File tree

iptc/test/test_matches.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,40 @@ def test_iprange_tcpdport(self):
264264
self.fail("inserted rule does not match original")
265265

266266

267+
class TestXTStateMatch(unittest.TestCase):
268+
def setUp(self):
269+
self.rule = iptc.Rule()
270+
self.rule.src = "127.0.0.1"
271+
self.rule.protocol = "tcp"
272+
self.rule.target = iptc.Target(self.rule, "ACCEPT")
273+
274+
self.match = iptc.Match(self.rule, "state")
275+
276+
self.chain = iptc.Chain(iptc.Table(iptc.Table.FILTER),
277+
"iptc_test_state")
278+
self.table = iptc.Table(iptc.Table.FILTER)
279+
try:
280+
self.chain.flush()
281+
self.chain.delete()
282+
except:
283+
pass
284+
self.table.create_chain(self.chain)
285+
286+
def tearDown(self):
287+
self.chain.flush()
288+
self.chain.delete()
289+
pass
290+
291+
def test_state(self):
292+
self.match.state = "RELATED,ESTABLISHED"
293+
self.rule.add_match(self.match)
294+
self.chain.insert_rule(self.rule)
295+
rule = self.chain.rules[0]
296+
m = rule.matches[0]
297+
self.assertIn(m.name, ["state", "conntrack"])
298+
self.assertEquals(m.state, "RELATED,ESTABLISHED")
299+
300+
267301
def suite():
268302
suite_match = unittest.TestLoader().loadTestsFromTestCase(TestMatch)
269303
suite_udp = unittest.TestLoader().loadTestsFromTestCase(TestXTUdpMatch)
@@ -273,8 +307,10 @@ def suite():
273307
TestCommentMatch)
274308
suite_iprange = unittest.TestLoader().loadTestsFromTestCase(
275309
TestIprangeMatch)
310+
suite_state = unittest.TestLoader().loadTestsFromTestCase(TestXTStateMatch)
276311
return unittest.TestSuite([suite_match, suite_udp, suite_mark,
277-
suite_limit, suite_comment, suite_iprange])
312+
suite_limit, suite_comment, suite_iprange,
313+
suite_state])
278314

279315

280316
def run_tests():

iptc/test/test_targets.py

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -342,22 +342,56 @@ def test_insert(self):
342342
self.fail("inserted rule does not match original")
343343

344344

345+
class TestXTNotrackTarget(unittest.TestCase):
346+
def setUp(self):
347+
self.rule = iptc.Rule()
348+
self.rule.dst = "127.0.0.2"
349+
self.rule.protocol = "tcp"
350+
self.rule.out_interface = "eth0"
351+
352+
self.target = iptc.Target(self.rule, "NOTRACK")
353+
self.rule.target = self.target
354+
355+
self.chain = iptc.Chain(iptc.Table(iptc.Table.RAW),
356+
"iptc_test_notrack")
357+
try:
358+
self.chain.flush()
359+
self.chain.delete()
360+
except:
361+
pass
362+
iptc.Table(iptc.Table.RAW).create_chain(self.chain)
363+
364+
def tearDown(self):
365+
self.chain.flush()
366+
self.chain.delete()
367+
368+
def test_notrack(self):
369+
self.chain.insert_rule(self.rule)
370+
t = self.chain.rules[0].target
371+
self.assertIn(t.name, ["NOTRACK", "CT"])
372+
373+
345374
def suite():
375+
suites = []
346376
suite_target = unittest.TestLoader().loadTestsFromTestCase(TestTarget)
347377
suite_tos = unittest.TestLoader().loadTestsFromTestCase(TestXTTosTarget)
348378
suite_cluster = unittest.TestLoader().loadTestsFromTestCase(
349379
TestXTClusteripTarget)
380+
suite_redir = unittest.TestLoader().loadTestsFromTestCase(
381+
TestIPTRedirectTarget)
382+
suite_masq = unittest.TestLoader().loadTestsFromTestCase(
383+
TestIPTMasqueradeTarget)
384+
suite_dnat = unittest.TestLoader().loadTestsFromTestCase(
385+
TestDnatTarget)
386+
suite_conntrack = unittest.TestLoader().loadTestsFromTestCase(
387+
TestXTNotrackTarget)
388+
suites.extend([suite_target, suite_cluster, suite_tos])
350389
if is_table_available(iptc.Table.NAT):
351-
suite_redir = unittest.TestLoader().loadTestsFromTestCase(
352-
TestIPTRedirectTarget)
353-
suite_masq = unittest.TestLoader().loadTestsFromTestCase(
354-
TestIPTMasqueradeTarget)
355-
suite_dnat = unittest.TestLoader().loadTestsFromTestCase(
356-
TestDnatTarget)
357-
return unittest.TestSuite([suite_target, suite_cluster, suite_redir,
358-
suite_tos, suite_masq, suite_dnat])
359-
else:
360-
return unittest.TestSuite([suite_target, suite_cluster, suite_tos])
390+
suites.extend([suite_target, suite_cluster, suite_redir, suite_tos,
391+
suite_masq, suite_dnat])
392+
if is_table_available(iptc.Table.RAW):
393+
suites.extend([suite_conntrack])
394+
return unittest.TestSuite(suites)
361395

362396

363397
def run_tests():

0 commit comments

Comments
 (0)