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)
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)