firewall: adjust tests to the new tuple returned by prepare_rules()
This commit is contained in:
parent
78de37da92
commit
3067e469d3
@ -1,5 +1,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import operator
|
import operator
|
||||||
|
import re
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
@ -37,6 +38,9 @@ class DummyQubesDB(object):
|
|||||||
else:
|
else:
|
||||||
self.entries.pop(path)
|
self.entries.pop(path)
|
||||||
|
|
||||||
|
def write(self, path, val):
|
||||||
|
self.entries[path] = val
|
||||||
|
|
||||||
def multiread(self, prefix):
|
def multiread(self, prefix):
|
||||||
result = {}
|
result = {}
|
||||||
for key, value in self.entries.items():
|
for key, value in self.entries.items():
|
||||||
@ -220,8 +224,12 @@ class TestIptablesWorker(TestCase):
|
|||||||
"--reject-with icmp-admin-prohibited\n"
|
"--reject-with icmp-admin-prohibited\n"
|
||||||
"COMMIT\n"
|
"COMMIT\n"
|
||||||
)
|
)
|
||||||
self.assertEqual(self.obj.prepare_rules('chain', rules, 4),
|
ret = self.obj.prepare_rules('chain', rules, 4)
|
||||||
expected_iptables)
|
self.assertEqual(ret[0], expected_iptables)
|
||||||
|
self.assertEqual(ret[1].keys(), {'yum.qubes-os.org'})
|
||||||
|
self.assertIsInstance(ret[1]['yum.qubes-os.org'], set)
|
||||||
|
self.assertIsNotNone(re.match('^\d+\.\d+\.\d+\.\d+/32$',
|
||||||
|
ret[1]['yum.qubes-os.org'].pop()))
|
||||||
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
||||||
self.obj.prepare_rules('chain', [{'unknown': 'xxx'}], 4)
|
self.obj.prepare_rules('chain', [{'unknown': 'xxx'}], 4)
|
||||||
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
||||||
@ -258,8 +266,12 @@ class TestIptablesWorker(TestCase):
|
|||||||
"--reject-with icmp6-adm-prohibited\n"
|
"--reject-with icmp6-adm-prohibited\n"
|
||||||
"COMMIT\n"
|
"COMMIT\n"
|
||||||
)
|
)
|
||||||
self.assertEqual(self.obj.prepare_rules('chain', rules, 6),
|
ret = self.obj.prepare_rules('chain', rules, 6)
|
||||||
expected_iptables)
|
self.assertEqual(ret[0], expected_iptables)
|
||||||
|
self.assertEqual(ret[1].keys(), {'ripe.net'})
|
||||||
|
self.assertIsInstance(ret[1]['ripe.net'], set)
|
||||||
|
self.assertIsNotNone(re.match('^[0-9a-f:]+/\d+$',
|
||||||
|
ret[1]['ripe.net'].pop()))
|
||||||
|
|
||||||
def test_004_apply_rules4(self):
|
def test_004_apply_rules4(self):
|
||||||
rules = [{'action': 'accept'}]
|
rules = [{'action': 'accept'}]
|
||||||
@ -271,7 +283,7 @@ class TestIptablesWorker(TestCase):
|
|||||||
['-I', 'QBS-FORWARD', '-s', '10.137.0.1', '-j', chain],
|
['-I', 'QBS-FORWARD', '-s', '10.137.0.1', '-j', chain],
|
||||||
['-F', chain]])
|
['-F', chain]])
|
||||||
self.assertEqual(self.obj.loaded_iptables[4],
|
self.assertEqual(self.obj.loaded_iptables[4],
|
||||||
self.obj.prepare_rules(chain, rules, 4))
|
self.obj.prepare_rules(chain, rules, 4)[0])
|
||||||
self.assertEqual(self.obj.called_commands[6], [])
|
self.assertEqual(self.obj.called_commands[6], [])
|
||||||
self.assertIsNone(self.obj.loaded_iptables[6])
|
self.assertIsNone(self.obj.loaded_iptables[6])
|
||||||
|
|
||||||
@ -285,7 +297,7 @@ class TestIptablesWorker(TestCase):
|
|||||||
['-I', 'QBS-FORWARD', '-s', '2000::a', '-j', chain],
|
['-I', 'QBS-FORWARD', '-s', '2000::a', '-j', chain],
|
||||||
['-F', chain]])
|
['-F', chain]])
|
||||||
self.assertEqual(self.obj.loaded_iptables[6],
|
self.assertEqual(self.obj.loaded_iptables[6],
|
||||||
self.obj.prepare_rules(chain, rules, 6))
|
self.obj.prepare_rules(chain, rules, 6)[0])
|
||||||
self.assertEqual(self.obj.called_commands[4], [])
|
self.assertEqual(self.obj.called_commands[4], [])
|
||||||
self.assertIsNone(self.obj.loaded_iptables[4])
|
self.assertIsNone(self.obj.loaded_iptables[4])
|
||||||
|
|
||||||
@ -448,8 +460,12 @@ class TestNftablesWorker(TestCase):
|
|||||||
' }\n'
|
' }\n'
|
||||||
'}\n'
|
'}\n'
|
||||||
)
|
)
|
||||||
self.assertEqual(self.obj.prepare_rules('chain', rules, 4),
|
ret = self.obj.prepare_rules('chain', rules, 4)
|
||||||
expected_nft)
|
self.assertEqual(ret[0], expected_nft)
|
||||||
|
self.assertEqual(ret[1].keys(), {'yum.qubes-os.org'})
|
||||||
|
self.assertIsInstance(ret[1]['yum.qubes-os.org'], set)
|
||||||
|
self.assertIsNotNone(re.match('^\d+\.\d+\.\d+\.\d+/32$',
|
||||||
|
ret[1]['yum.qubes-os.org'].pop()))
|
||||||
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
||||||
self.obj.prepare_rules('chain', [{'unknown': 'xxx'}], 4)
|
self.obj.prepare_rules('chain', [{'unknown': 'xxx'}], 4)
|
||||||
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
with self.assertRaises(qubesagent.firewall.RuleParseError):
|
||||||
@ -485,8 +501,12 @@ class TestNftablesWorker(TestCase):
|
|||||||
' }\n'
|
' }\n'
|
||||||
'}\n'
|
'}\n'
|
||||||
)
|
)
|
||||||
self.assertEqual(self.obj.prepare_rules('chain', rules, 6),
|
ret = self.obj.prepare_rules('chain', rules, 6)
|
||||||
expected_nft)
|
self.assertEqual(ret[0], expected_nft)
|
||||||
|
self.assertEqual(ret[1].keys(), {'ripe.net'})
|
||||||
|
self.assertIsInstance(ret[1]['ripe.net'], set)
|
||||||
|
self.assertIsNotNone(re.match('^[0-9a-f:]+/\d+$',
|
||||||
|
ret[1]['ripe.net'].pop()))
|
||||||
|
|
||||||
def test_004_apply_rules4(self):
|
def test_004_apply_rules4(self):
|
||||||
rules = [{'action': 'accept'}]
|
rules = [{'action': 'accept'}]
|
||||||
@ -494,7 +514,7 @@ class TestNftablesWorker(TestCase):
|
|||||||
self.obj.apply_rules('10.137.0.1', rules)
|
self.obj.apply_rules('10.137.0.1', rules)
|
||||||
self.assertEqual(self.obj.loaded_rules,
|
self.assertEqual(self.obj.loaded_rules,
|
||||||
[self.expected_create_chain('ip', '10.137.0.1', chain),
|
[self.expected_create_chain('ip', '10.137.0.1', chain),
|
||||||
self.obj.prepare_rules(chain, rules, 4),
|
self.obj.prepare_rules(chain, rules, 4)[0],
|
||||||
])
|
])
|
||||||
|
|
||||||
def test_005_apply_rules6(self):
|
def test_005_apply_rules6(self):
|
||||||
@ -503,7 +523,7 @@ class TestNftablesWorker(TestCase):
|
|||||||
self.obj.apply_rules('2000::a', rules)
|
self.obj.apply_rules('2000::a', rules)
|
||||||
self.assertEqual(self.obj.loaded_rules,
|
self.assertEqual(self.obj.loaded_rules,
|
||||||
[self.expected_create_chain('ip6', '2000::a', chain),
|
[self.expected_create_chain('ip6', '2000::a', chain),
|
||||||
self.obj.prepare_rules(chain, rules, 6),
|
self.obj.prepare_rules(chain, rules, 6)[0],
|
||||||
])
|
])
|
||||||
|
|
||||||
def test_006_init(self):
|
def test_006_init(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user