Beispiel #1
0
class TestLimitTargetZones(unittest.TestCase):

    def setUp(self):
        Zone('internet', ('0.0.0.0/0', '0::0/0'))
        Zone('intranet', ('10.0.0.0/8', ), admin_parent='internet')
        Zone('office1', ('10.1.0.0/16', '10.5.0.0/16'), admin_parent='intranet')
        Zone('disconnected', ('192.168.0.0/16', ))
        self.session = MasterSession()

    def tearDown(self):
        del self.session
        import Zorp.Globals
        Zorp.Globals.services.clear()

    def checkZone(self, zone_name, expected):
        self.session.server_zone = Zone.lookup_by_name(zone_name)
        self.assertEqual(expected, self.session.isServerPermitted())

    def test_default(self):
        """Check that the default is no restrictions."""
        s = Service('empty', PlugProxy)
        self.session.setService(s)

        self.checkZone('internet', ZV_ACCEPT)
        self.checkZone('office1', ZV_ACCEPT)

    def test_none(self):
        """Check that None means no restrictions"""
        s = Service('none', PlugProxy, limit_target_zones_to=None)
        self.session.setService(s)

        self.checkZone('internet', ZV_ACCEPT)
        self.checkZone('office1', ZV_ACCEPT)

    def test_none(self):
        """Check that an empty list means no restrictions"""
        s = Service('none', PlugProxy, limit_target_zones_to=())
        self.session.setService(s)

        self.checkZone('internet', ZV_ACCEPT)
        self.checkZone('office1', ZV_ACCEPT)

    def test_match(self):
        """Check for matches recursively"""
        s = Service('match', PlugProxy, limit_target_zones_to=('internet',))
        self.session.setService(s)

        self.checkZone('internet', ZV_ACCEPT)
        self.checkZone('intranet', ZV_ACCEPT)
        self.checkZone('office1', ZV_ACCEPT)
        self.checkZone('disconnected', ZV_REJECT)