def test_filter_rule(self): fr = models.FilterRule(action='pass', family='inet', destination='192.168.1.1/32') self.assertEqual(fr.action, 'pass') self.assertEqual(fr.family, 'inet') self.assertEqual(fr.destination, netaddr.IPNetwork('192.168.1.1/32'))
def test_setattr_protocol_invalid(self): with self.assertRaises(ValueError): models.FilterRule(action='pass', protocol='made_up_proto')
def test_setattr_protocol_valid(self): for p in ['tcp', 'udp', 'imcp']: fr = models.FilterRule(action='pass', protocol=p) self.assertEqual(fr.protocol, p)
def test_setattr_port_none(self): fr = models.FilterRule(action='pass', destination_port=None) self.assertIs(fr.destination_port, None)
def test_setattr_port(self): fr = models.FilterRule(action='pass', source_port='22') self.assertEqual(fr.source_port, 22) fr = models.FilterRule(action='pass', destination_port='23') self.assertEqual(fr.destination_port, 23)
def test_setattr_redirect(self): fr = models.FilterRule(action='pass', redirect='192.168.1.1') self.assertEqual(fr.redirect, netaddr.IPAddress('192.168.1.1'))
def test_setattr_source_destination_label(self): fr = models.FilterRule(action='pass', destination='foo') self.assertEqual(fr.destination, 'foo') fr = models.FilterRule(action='pass', source='bar') self.assertEqual(fr.source, 'bar')
def test_setattr_source_destination_cidr(self): fr = models.FilterRule(action='pass', destination='192.168.1.2/32') self.assertEqual(fr.destination, netaddr.IPNetwork('192.168.1.2/32')) fr = models.FilterRule(action='pass', source='192.168.1.2/32') self.assertEqual(fr.source, netaddr.IPNetwork('192.168.1.2/32'))
def test_setattr_invalid_family(self): with self.assertRaises(ValueError): models.FilterRule(action='pass', family='raw')
def test_setattr_action_invalid(self): with self.assertRaises(ValueError): models.FilterRule(action='reject')
def test_setattr_action_valid(self): fr = models.FilterRule(action='block') self.assertEqual(fr.action, 'block')