Exemplo n.º 1
0
    def test_config_altogether(self):
        """
        Verifies that different config options can work together
        """
        config_update = {
            "enabled": False,
            "groups": {
                "set": {
                    "group1": True,
                    "group2": False,
                    "group3": None
                },
                "default": False,
                "disable_previous": True,
                "enable_previous": True,
                "clear_previous": None,
            },
            "mode": ModeChoices.bivariant.name,
        }

        _GLOBAL_SETTINGS["groups"]["group4"] = False

        config(config_update)

        self.assertFalse(_GLOBAL_SETTINGS["enabled"])
        self.assertEqual(len(_GLOBAL_SETTINGS["groups"]), 3)
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group4"])
        self.assertFalse(_GLOBAL_SETTINGS["default"])
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.bivariant)
Exemplo n.º 2
0
    def test_config_altogether(self):
        """
        Verifies that different config options can work together
        """
        config_update = {
            'enabled': False,
            'groups': {
                'set': {
                    'group1': True,
                    'group2': False,
                    'group3': None
                },
                'default': False,
                'disable_previous': True,
                'enable_previous': True,
                'clear_previous': None
            },
            'mode': ModeChoices.bivariant.name
        }

        _GLOBAL_SETTINGS['groups']['group4'] = False

        config(config_update)

        self.assertFalse(_GLOBAL_SETTINGS['enabled'])
        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 3)
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
Exemplo n.º 3
0
    def test_config_altogether(self):
        """
        Verifies that different config options can work together
        """
        config_update = {
            'enabled': False,
            'groups': {
                    'set': {'group1': True, 'group2': False, 'group3': None},
                    'default': False,
                    'disable_previous': True,
                    'enable_previous': True,
                    'clear_previous': None
                },
            'mode': ModeChoices.bivariant.name
            }

        _GLOBAL_SETTINGS['groups']['group4'] = False

        config(config_update)

        self.assertFalse(_GLOBAL_SETTINGS['enabled'])
        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 3)
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
Exemplo n.º 4
0
    def test_config_groups_set(self):
        """
        Verifies that setting groups status works as expected
        """
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        _GLOBAL_SETTINGS['groups']['group4'] = True
        self.assertDictEqual(_GLOBAL_SETTINGS['groups'], {'group4': True})

        config({'groups': {'set': {'group1': True, 'group2': False, 'group3': None}}})

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 3)
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertFalse(_GLOBAL_SETTINGS['groups'].get('group3', False))
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])

        config({'groups': {'set': {'group1': False, 'group2': None, 'group3': True}}})

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 4)
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])

        config({'groups': {'set': {'group4': False}}})

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 4)
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group4'])

        with self.assertRaises(KeyError):
            config({'groups': {'hello_world': 1}})
Exemplo n.º 5
0
    def test_reset(self):
        """
        Verifies that config reset options sets changes the global settings to their default
        """
        config_update = {
            "enabled": False,
            "groups": {
                "set": {
                    "random": True
                },
                "default": False
            },
            "mode": ModeChoices.bivariant.name,
        }

        config(config_update)

        self.assertFalse(_GLOBAL_SETTINGS["enabled"])
        self.assertFalse(_GLOBAL_SETTINGS["default"])
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.bivariant)
        self.assertNotEqual(_GLOBAL_SETTINGS["groups"], {})

        config(reset=True)

        self.assertTrue(_GLOBAL_SETTINGS["enabled"])
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS["groups"], {})

        config(config_update, reset=True)

        self.assertTrue(_GLOBAL_SETTINGS["enabled"])
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS["groups"], {})

        # Resetting should also remove unknown global settings

        config(config_update)
        _GLOBAL_SETTINGS["hello_world"] = 123
        _GLOBAL_SETTINGS["mode"] = "hello"
        config(reset=True)

        self.assertTrue(_GLOBAL_SETTINGS["enabled"])
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS["groups"], {})

        self.assertEqual(len(_GLOBAL_SETTINGS), 4)
Exemplo n.º 6
0
    def test_reset(self):
        """
        Verifies that config reset options sets changes the global settings to their default
        """
        config_update = {
            'enabled': False,
            'groups': {
                'set': {
                    'random': True
                },
                'default': False
            },
            'mode': ModeChoices.bivariant.name
        }

        config(config_update)

        self.assertFalse(_GLOBAL_SETTINGS['enabled'])
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
        self.assertNotEqual(_GLOBAL_SETTINGS['groups'], {})

        config(reset=True)

        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        config(config_update, reset=True)

        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        # Resetting should also remove unknown global settings

        config(config_update)
        _GLOBAL_SETTINGS['hello_world'] = 123
        _GLOBAL_SETTINGS['mode'] = 'hello'
        config(reset=True)

        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        self.assertEqual(len(_GLOBAL_SETTINGS), 4)
Exemplo n.º 7
0
    def test_reset(self):
        """
        Verifies that config reset options sets changes the global settings to their default
        """
        config_update = {
            'enabled': False,
            'groups': {
                    'set': {'random': True},
                    'default': False
                },
            'mode': ModeChoices.bivariant.name
            }

        config(config_update)

        self.assertFalse(_GLOBAL_SETTINGS['enabled'])
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
        self.assertNotEqual(_GLOBAL_SETTINGS['groups'], {})

        config(reset=True)

        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        config(config_update, reset=True)

        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        # Resetting should also remove unknown global settings

        config(config_update)
        _GLOBAL_SETTINGS['hello_world'] = 123
        _GLOBAL_SETTINGS['mode'] = 'hello'
        config(reset=True)

        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        self.assertEqual(len(_GLOBAL_SETTINGS), 4)
Exemplo n.º 8
0
    def test_config_groups_altogether(self):
        """
        Verifies that all groups config options can work with each other
        """
        config_update = {
            'groups': {
                    'set': {
                        'group1': True,
                        'group2': False,
                        'group3': None
                        },
                    'default': False,
                    'disable_previous': True,
                    'enable_previous': True
                },
            }

        _GLOBAL_SETTINGS['groups']['group4'] = False

        config(config_update)

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 3)
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertNotIn('group3', _GLOBAL_SETTINGS['groups'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])
        self.assertFalse(_GLOBAL_SETTINGS['default'])

        config_update = {
            'groups': {
                    'set': {
                        'group1': False
                        },
                    'default': True,
                    'disable_previous': True,
                    'enable_previous': True,
                    'clear_previous': True
                },
            }

        config(config_update)

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 1)
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
Exemplo n.º 9
0
    def test_config_groups_altogether(self):
        """
        Verifies that all groups config options can work with each other
        """
        config_update = {
            'groups': {
                'set': {
                    'group1': True,
                    'group2': False,
                    'group3': None
                },
                'default': False,
                'disable_previous': True,
                'enable_previous': True
            },
        }

        _GLOBAL_SETTINGS['groups']['group4'] = False

        config(config_update)

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 3)
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertNotIn('group3', _GLOBAL_SETTINGS['groups'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])
        self.assertFalse(_GLOBAL_SETTINGS['default'])

        config_update = {
            'groups': {
                'set': {
                    'group1': False
                },
                'default': True,
                'disable_previous': True,
                'enable_previous': True,
                'clear_previous': True
            },
        }

        config(config_update)

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 1)
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertTrue(_GLOBAL_SETTINGS['default'])
Exemplo n.º 10
0
    def test_config_groups_altogether(self):
        """
        Verifies that all groups config options can work with each other
        """
        config_update = {
            "groups": {
                "set": {
                    "group1": True,
                    "group2": False,
                    "group3": None
                },
                "default": False,
                "disable_previous": True,
                "enable_previous": True,
            },
        }

        _GLOBAL_SETTINGS["groups"]["group4"] = False

        config(config_update)

        self.assertEqual(len(_GLOBAL_SETTINGS["groups"]), 3)
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertNotIn("group3", _GLOBAL_SETTINGS["groups"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group4"])
        self.assertFalse(_GLOBAL_SETTINGS["default"])

        config_update = {
            "groups": {
                "set": {
                    "group1": False
                },
                "default": True,
                "disable_previous": True,
                "enable_previous": True,
                "clear_previous": True,
            },
        }

        config(config_update)

        self.assertEqual(len(_GLOBAL_SETTINGS["groups"]), 1)
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertTrue(_GLOBAL_SETTINGS["default"])
Exemplo n.º 11
0
    def test_config_groups_default(self):
        """
        Verifies that changing the status of a default group works as expected
        The default group status cannot be changed as any other group
        The special option 'default' must be used
        """
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': False}})
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': None}})
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': True}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        with self.assertRaises(KeyError):
            config({'groups': {'set': {'default': None}}})
Exemplo n.º 12
0
    def test_config_groups_default(self):
        """
        Verifies that changing the status of a default group works as expected
        The default group status cannot be changed as any other group
        The special option 'default' must be used
        """
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': False}})
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': None}})
        self.assertFalse(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': True}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        config({'groups': {'default': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        with self.assertRaises(KeyError):
            config({'groups': {'set': {'default': None}}})
Exemplo n.º 13
0
 def test_config_global_enabled(self):
     """
     Verifies that global enabled option can be set as expected
     """
     self.assertTrue(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': False})
     self.assertFalse(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': None})
     self.assertFalse(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': True})
     self.assertTrue(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': None})
     self.assertTrue(_GLOBAL_SETTINGS['enabled'])
Exemplo n.º 14
0
 def test_config_global_enabled(self):
     """
     Verifies that global enabled option can be set as expected
     """
     self.assertTrue(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': False})
     self.assertFalse(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': None})
     self.assertFalse(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': True})
     self.assertTrue(_GLOBAL_SETTINGS['enabled'])
     config({'enabled': None})
     self.assertTrue(_GLOBAL_SETTINGS['enabled'])
Exemplo n.º 15
0
    def test_config_groups_set(self):
        """
        Verifies that setting groups status works as expected
        """
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        _GLOBAL_SETTINGS['groups']['group4'] = True
        self.assertDictEqual(_GLOBAL_SETTINGS['groups'], {'group4': True})

        config({
            'groups': {
                'set': {
                    'group1': True,
                    'group2': False,
                    'group3': None
                }
            }
        })

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 3)
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertFalse(_GLOBAL_SETTINGS['groups'].get('group3', False))
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])

        config({
            'groups': {
                'set': {
                    'group1': False,
                    'group2': None,
                    'group3': True
                }
            }
        })

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 4)
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group4'])

        config({'groups': {'set': {'group4': False}}})

        self.assertEqual(len(_GLOBAL_SETTINGS['groups']), 4)
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group4'])

        with self.assertRaises(KeyError):
            config({'groups': {'hello_world': 1}})
Exemplo n.º 16
0
    def test_config_groups_set(self):
        """
        Verifies that setting groups status works as expected
        """
        self.assertEqual(_GLOBAL_SETTINGS["groups"], {})

        _GLOBAL_SETTINGS["groups"]["group4"] = True
        self.assertDictEqual(_GLOBAL_SETTINGS["groups"], {"group4": True})

        config({
            "groups": {
                "set": {
                    "group1": True,
                    "group2": False,
                    "group3": None
                }
            }
        })

        self.assertEqual(len(_GLOBAL_SETTINGS["groups"]), 3)
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"].get("group3", False))
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group4"])

        config({
            "groups": {
                "set": {
                    "group1": False,
                    "group2": None,
                    "group3": True
                }
            }
        })

        self.assertEqual(len(_GLOBAL_SETTINGS["groups"]), 4)
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group4"])

        config({"groups": {"set": {"group4": False}}})

        self.assertEqual(len(_GLOBAL_SETTINGS["groups"]), 4)
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group4"])

        with self.assertRaises(KeyError):
            config({"groups": {"hello_world": 1}})
Exemplo n.º 17
0
    def test_mode_value(self):
        """
        Verifies that mode and covariant/contravariant properties work as expected
        Invariant by default - even if 'mode' is set to None
        """
        settings = Settings()

        self.assertEqual(settings.mode, ModeChoices.invariant)
        self.assertFalse(settings.covariant)
        self.assertFalse(settings.contravariant)

        config({'mode': ModeChoices.covariant.name})

        self.assertEqual(settings.mode, ModeChoices.covariant)
        self.assertTrue(settings.covariant)
        self.assertFalse(settings.contravariant)

        config({'mode': ModeChoices.contravariant.name})

        self.assertEqual(settings.mode, ModeChoices.contravariant)
        self.assertFalse(settings.covariant)
        self.assertTrue(settings.contravariant)

        config({'mode': ModeChoices.invariant.name})

        self.assertEqual(settings.mode, ModeChoices.invariant)
        self.assertFalse(settings.covariant)
        self.assertFalse(settings.contravariant)

        config({'mode': ModeChoices.bivariant.name})

        self.assertEqual(settings.mode, ModeChoices.bivariant)
        self.assertTrue(settings.covariant)
        self.assertTrue(settings.contravariant)

        _GLOBAL_SETTINGS['mode'] = None

        self.assertEqual(settings.mode, ModeChoices.invariant)
        self.assertFalse(settings.covariant)
        self.assertFalse(settings.contravariant)
Exemplo n.º 18
0
    def test_mode_value(self):
        """
        Verifies that mode and covariant/contravariant properties work as expected
        Invariant by default - even if 'mode' is set to None
        """
        settings = Settings()

        self.assertEqual(settings.mode, ModeChoices.invariant)
        self.assertFalse(settings.covariant)
        self.assertFalse(settings.contravariant)

        config({'mode': ModeChoices.covariant.name})

        self.assertEqual(settings.mode, ModeChoices.covariant)
        self.assertTrue(settings.covariant)
        self.assertFalse(settings.contravariant)

        config({'mode': ModeChoices.contravariant.name})

        self.assertEqual(settings.mode, ModeChoices.contravariant)
        self.assertFalse(settings.covariant)
        self.assertTrue(settings.contravariant)

        config({'mode': ModeChoices.invariant.name})

        self.assertEqual(settings.mode, ModeChoices.invariant)
        self.assertFalse(settings.covariant)
        self.assertFalse(settings.contravariant)

        config({'mode': ModeChoices.bivariant.name})

        self.assertEqual(settings.mode, ModeChoices.bivariant)
        self.assertTrue(settings.covariant)
        self.assertTrue(settings.contravariant)

        _GLOBAL_SETTINGS['mode'] = None

        self.assertEqual(settings.mode, ModeChoices.invariant)
        self.assertFalse(settings.covariant)
        self.assertFalse(settings.contravariant)
Exemplo n.º 19
0
 def setUp(self):
     config(reset=True)
Exemplo n.º 20
0
    def test_config_mode(self):
        """
        Verifies that the type checking mode can be configured
        """
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)
        config({"mode": None})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)
        config({"mode": "covariant"})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.covariant)
        config({"mode": None})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.covariant)
        config({"mode": "invariant"})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)
        config({"mode": None})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)
        config({"mode": "contravariant"})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.contravariant)
        config({"mode": None})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.contravariant)
        config({"mode": "bivariant"})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.bivariant)
        config({"mode": None})
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.bivariant)
        config(reset=True)
        self.assertEqual(_GLOBAL_SETTINGS["mode"], ModeChoices.invariant)

        with self.assertRaises(KeyError):
            config({"mode": "hello world"})
Exemplo n.º 21
0
 def test_config_unknown_option(self):
     """
     Verifies that an unknown config option throws an exception
     """
     with self.assertRaises(KeyError):
         config({'hello_world': None})
Exemplo n.º 22
0
    def test_groups(self):
        """
        Verifies that settings can be  assigned to a group different from the default
        Also, verifies that local enabled takes precedence over the group enabled status
        """
        settings = Settings(group="my_group")

        self.assertFalse(settings)
        self.assertEqual(settings.group, "my_group")

        config({"groups": {"set": {"my_group": True}}})

        self.assertTrue(settings)

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS["enabled"])

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS["enabled"])

        ##################
        config(reset=True)

        settings = Settings(group="my_group", enabled=True)

        self.assertTrue(settings)
        self.assertEqual(settings.group, "my_group")

        config({"groups": {"set": {"my_group": True}}})

        self.assertTrue(settings)

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS["enabled"])

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS["enabled"])

        ##################
        config(reset=True)

        settings = Settings(group="my_group", enabled=False)

        self.assertFalse(settings)
        self.assertEqual(settings.group, "my_group")

        config({"groups": {"set": {"my_group": True}}})

        self.assertFalse(settings)

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS["enabled"])

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS["enabled"])
Exemplo n.º 23
0
 def tearDown(self):
     config(reset=True)
Exemplo n.º 24
0
    def test_config_mode(self):
        """
        Verifies that the type checking mode can be configured
        """
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': 'covariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.covariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.covariant)
        config({'mode': 'invariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': 'contravariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.contravariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.contravariant)
        config({'mode': 'bivariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
        config(reset=True)
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)

        with self.assertRaises(KeyError):
            config({'mode': 'hello world'})
Exemplo n.º 25
0
    def test_config_groups_previous_options(self):
        """
        Verifies that xyz_previous options work as expected
        Available options:
        # 1. Clear - deletes all previously available groups
        # 2. Enable - sets all previously available groups to True
        # 3. Disable - sets all previously available groups to False
        """
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        self.assertTrue(_GLOBAL_SETTINGS['default'])
        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'disable_previous': True}})
        self.assertTrue(all(not v
                            for v in _GLOBAL_SETTINGS['groups'].values()))
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'disable_previous': False}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'disable_previous': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        #############################################

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'enable_previous': True}})
        self.assertTrue(
            all(bool(v) for v in _GLOBAL_SETTINGS['groups'].values()))
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'enable_previous': False}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'enable_previous': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        #############################################

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'clear_previous': True}})
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'clear_previous': False}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'clear_previous': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])
Exemplo n.º 26
0
    def test_config_groups_previous_options(self):
        """
        Verifies that xyz_previous options work as expected
        Available options:
        # 1. Clear - deletes all previously available groups
        # 2. Enable - sets all previously available groups to True
        # 3. Disable - sets all previously available groups to False
        """
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})

        self.assertTrue(_GLOBAL_SETTINGS['default'])
        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'disable_previous': True}})
        self.assertTrue(all(not v for v in _GLOBAL_SETTINGS['groups'].values()))
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'disable_previous': False}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'disable_previous': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        #############################################

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'enable_previous': True}})
        self.assertTrue(all(bool(v) for v in _GLOBAL_SETTINGS['groups'].values()))
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'enable_previous': False}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'enable_previous': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        #############################################

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'clear_previous': True}})
        self.assertEqual(_GLOBAL_SETTINGS['groups'], {})
        self.assertTrue(_GLOBAL_SETTINGS['default'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'clear_previous': False}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])

        _GLOBAL_SETTINGS['groups']['group1'] = True
        _GLOBAL_SETTINGS['groups']['group2'] = False
        _GLOBAL_SETTINGS['groups']['group3'] = True

        config({'groups': {'clear_previous': None}})
        self.assertTrue(_GLOBAL_SETTINGS['default'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group1'])
        self.assertFalse(_GLOBAL_SETTINGS['groups']['group2'])
        self.assertTrue(_GLOBAL_SETTINGS['groups']['group3'])
Exemplo n.º 27
0
    def test_config_mode(self):
        """
        Verifies that the type checking mode can be configured
        """
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': 'covariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.covariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.covariant)
        config({'mode': 'invariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)
        config({'mode': 'contravariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.contravariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.contravariant)
        config({'mode': 'bivariant'})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
        config({'mode': None})
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.bivariant)
        config(reset=True)
        self.assertEqual(_GLOBAL_SETTINGS['mode'], ModeChoices.invariant)

        with self.assertRaises(KeyError):
            config({'mode': 'hello world'})
Exemplo n.º 28
0
 def test_config_unknown_option(self):
     """
     Verifies that an unknown config option throws an exception
     """
     with self.assertRaises(KeyError):
         config({'hello_world': None})
Exemplo n.º 29
0
    def test_groups(self):
        """
        Verifies that settings can be  assigned to a group different from the default
        Also, verifies that local enabled takes precedence over the group enabled status
        """
        settings = Settings(group='my_group')

        self.assertFalse(settings)
        self.assertEqual(settings.group, 'my_group')

        config({'groups': {'set': {'my_group': True}}})

        self.assertTrue(settings)

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        ##################
        config(reset=True)

        settings = Settings(group='my_group', enabled=True)

        self.assertTrue(settings)
        self.assertEqual(settings.group, 'my_group')

        config({'groups': {'set': {'my_group': True}}})

        self.assertTrue(settings)

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        ##################
        config(reset=True)

        settings = Settings(group='my_group', enabled=False)

        self.assertFalse(settings)
        self.assertEqual(settings.group, 'my_group')

        config({'groups': {'set': {'my_group': True}}})

        self.assertFalse(settings)

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
Exemplo n.º 30
0
 def setUp(self):
     config(reset=True)
Exemplo n.º 31
0
    def test_groups(self):
        """
        Verifies that settings can be  assigned to a group different from the default
        Also, verifies that local enabled takes precedence over the group enabled status
        """
        settings = Settings(group='my_group')

        self.assertFalse(settings)
        self.assertEqual(settings.group, 'my_group')

        config({'groups': {'set': {'my_group': True}}})

        self.assertTrue(settings)

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        ##################
        config(reset=True)

        settings = Settings(group='my_group', enabled=True)

        self.assertTrue(settings)
        self.assertEqual(settings.group, 'my_group')

        config({'groups': {'set': {'my_group': True}}})

        self.assertTrue(settings)

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        ##################
        config(reset=True)

        settings = Settings(group='my_group', enabled=False)

        self.assertFalse(settings)
        self.assertEqual(settings.group, 'my_group')

        config({'groups': {'set': {'my_group': True}}})

        self.assertFalse(settings)

        settings.enabled = True

        self.assertTrue(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])

        settings.enabled = False

        self.assertFalse(settings)
        self.assertTrue(_GLOBAL_SETTINGS['enabled'])
Exemplo n.º 32
0
 def tearDown(self):
     config(reset=True)
Exemplo n.º 33
0
    def test_config_groups_previous_options(self):
        """
        Verifies that xyz_previous options work as expected
        Available options:
        # 1. Clear - deletes all previously available groups
        # 2. Enable - sets all previously available groups to True
        # 3. Disable - sets all previously available groups to False
        """
        self.assertEqual(_GLOBAL_SETTINGS["groups"], {})

        self.assertTrue(_GLOBAL_SETTINGS["default"])
        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"disable_previous": True}})
        self.assertTrue(all(not v
                            for v in _GLOBAL_SETTINGS["groups"].values()))
        self.assertTrue(_GLOBAL_SETTINGS["default"])

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"disable_previous": False}})
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"disable_previous": None}})
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])

        #############################################

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"enable_previous": True}})
        self.assertTrue(
            all(bool(v) for v in _GLOBAL_SETTINGS["groups"].values()))
        self.assertTrue(_GLOBAL_SETTINGS["default"])

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"enable_previous": False}})
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"enable_previous": None}})
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])

        #############################################

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"clear_previous": True}})
        self.assertEqual(_GLOBAL_SETTINGS["groups"], {})
        self.assertTrue(_GLOBAL_SETTINGS["default"])

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"clear_previous": False}})
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])

        _GLOBAL_SETTINGS["groups"]["group1"] = True
        _GLOBAL_SETTINGS["groups"]["group2"] = False
        _GLOBAL_SETTINGS["groups"]["group3"] = True

        config({"groups": {"clear_previous": None}})
        self.assertTrue(_GLOBAL_SETTINGS["default"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group1"])
        self.assertFalse(_GLOBAL_SETTINGS["groups"]["group2"])
        self.assertTrue(_GLOBAL_SETTINGS["groups"]["group3"])