def test_register_model(self): """ Tests registering a model class. """ class ValidRegistryModel(Model): pass entity_registry = EntityRegistry() entity_registry.register_entity(ValidRegistryModel) entity_registry_info = entity_registry._entity_registry[ValidRegistryModel] self.assertEquals(entity_registry_info[0], None) self.assertTrue(isinstance(entity_registry_info[1], EntityConfig))
def test_register_invalid_entity_config(self): """ Tests registering an invalid entity config with a model. """ class ValidRegistryModel(Model): pass class InvalidEntityConfig(object): pass entity_registry = EntityRegistry() with self.assertRaises(ValueError): entity_registry.register_entity(ValidRegistryModel, InvalidEntityConfig)
def test_register_invalid_entity_config_no_qset(self): """ Tests registering an invalid entity config that does not have queryset """ class ValidRegistryModel(Model): pass class InvalidEntityConfig(EntityConfig): pass entity_registry = EntityRegistry() with self.assertRaises(ValueError): entity_registry.register_entity(InvalidEntityConfig)
def test_register_valid_entity_config(self): """ Tests registering an entity config with a model. """ class ValidRegistryModel(Model): pass class ValidEntityConfig(EntityConfig): queryset = ValidRegistryModel.objects.all() entity_registry = EntityRegistry() entity_registry.register_entity(ValidEntityConfig) entity_registry_info = entity_registry._entity_registry[ValidRegistryModel] self.assertTrue(isinstance(entity_registry_info, ValidEntityConfig))
def test_register_valid_entity_config(self): """ Tests registering an entity config with a model. """ class ValidRegistryModel(Model): pass class ValidEntityConfig(EntityConfig): pass entity_registry = EntityRegistry() entity_registry.register_entity(ValidRegistryModel, ValidEntityConfig) entity_registry_info = entity_registry._entity_registry[ValidRegistryModel] self.assertEquals(entity_registry_info[0], None) self.assertTrue(isinstance(entity_registry_info[1], ValidEntityConfig))
def test_register_manager(self): """ Tests registering a manager class. """ class ValidRegistryManager(Manager): pass class ValidRegistryModel(Model): objects = ValidRegistryManager() entity_registry = EntityRegistry() entity_registry.register_entity(ValidRegistryModel.objects) entity_registry_info = entity_registry._entity_registry[ValidRegistryModel] self.assertTrue(isinstance(entity_registry_info[0], QuerySet)) self.assertEquals(entity_registry_info[0].model, ValidRegistryModel) self.assertTrue(isinstance(entity_registry_info[1], EntityConfig))
def test_register_inherited_model(self): """ Tests registering a model class that extends an abstract model. """ class BaseModel(Model): class Meta: abstract = True class ValidRegistryModel(BaseModel): pass entity_registry = EntityRegistry() entity_registry.register_entity(ValidRegistryModel) entity_registry_info = entity_registry._entity_registry[ValidRegistryModel] self.assertEquals(entity_registry_info[0], None) self.assertTrue(isinstance(entity_registry_info[1], EntityConfig))
def test_register_inherited_manager(self): """ Tests registering a manager class that extends another manager. """ class BaseManager(Manager): pass class ValidRegistryManager(BaseManager): pass class ValidRegistryModel(Model): objects = ValidRegistryManager() entity_registry = EntityRegistry() entity_registry.register_entity(ValidRegistryModel.objects) entity_registry_info = entity_registry._entity_registry[ValidRegistryModel] self.assertTrue(isinstance(entity_registry_info[0], QuerySet)) self.assertTrue(isinstance(entity_registry_info[1], EntityConfig))
@register_entity(PointsToM2mEntity.objects.prefetch_related('m2m_entity__teams')) class PointsToM2mEntityConfig(EntityConfig): watching = [ (M2mEntity, lambda m2m_entity_obj: PointsToM2mEntity.objects.filter(m2m_entity=m2m_entity_obj)), ] def get_super_entities(self, model_obj): return model_obj.m2m_entity.teams.all() @register_entity(PointsToAccount) class PointsToAccountConfig(EntityConfig): watching = [ (Competitor, lambda competitor_obj: PointsToAccount.objects.filter(account__competitor=competitor_obj)), (Team, lambda team_obj: PointsToAccount.objects.filter(account__team=team_obj)), ] def get_entity_meta(self, model_obj): return { 'competitor_name': model_obj.account.competitor.name if model_obj.account.competitor else 'None', 'team_name': model_obj.account.team.name if model_obj.account.team else 'None', } # Register the test models here. TODO - figure out why django does not like having these functions in # the tests/models.py file entity_registry.register_entity(TeamGroup) entity_registry.register_entity(Competitor) entity_registry.register_entity(MultiInheritEntity)
] def get_super_entities(self, model_obj): return model_obj.m2m_entity.teams.all() @register_entity(PointsToAccount) class PointsToAccountConfig(EntityConfig): watching = [ (Competitor, lambda competitor_obj: PointsToAccount.objects.filter( account__competitor=competitor_obj)), (Team, lambda team_obj: PointsToAccount.objects.filter(account__team= team_obj)), ] def get_entity_meta(self, model_obj): return { 'competitor_name': model_obj.account.competitor.name if model_obj.account.competitor else 'None', 'team_name': model_obj.account.team.name if model_obj.account.team else 'None', } # Register the test models here. TODO - figure out why django does not like having these functions in # the tests/models.py file entity_registry.register_entity(TeamGroup) entity_registry.register_entity(Competitor) entity_registry.register_entity(MultiInheritEntity)