Exemplo n.º 1
0
    def test_initialization(self):
        """providers manager is lazily initialized"""
        providers = PermissionProviders()

        self.assertTrue(providers._initialized is False)
        self.assertTrue(not providers._providers)
        self.assertTrue(not providers._providers_dict)

        # public api errors on non-loaded object
        with self.assertRaises(AssertionError):
            providers.get_obj_type_annotators(TestType())

        with self.assertRaises(AssertionError):
            providers.get_obj_type_serializers(TestType())

        with self.assertRaises(AssertionError):
            providers.list()

        self.assertTrue(providers._initialized is False)
        self.assertTrue(not providers._providers)
        self.assertTrue(not providers._providers_dict)

        # load initializes providers
        providers = PermissionProviders()
        providers.load()

        self.assertTrue(providers._initialized)
        self.assertTrue(providers._providers)
        self.assertTrue(providers._providers_dict)
Exemplo n.º 2
0
    def test_annotators(self):
        """its possible to register and get annotators"""
        def mock_annotator(*args):
            pass

        providers = PermissionProviders()
        providers.acl_annotator(TestType, mock_annotator)
        providers.load()

        # providers.acl_annotator() throws after loading providers
        with self.assertRaises(AssertionError):
            providers.acl_annotator(TestType, mock_annotator)

        annotators_list = providers.get_obj_type_annotators(TestType())
        self.assertEqual(annotators_list[0], mock_annotator)