Source code for access_control.test.test_methods

from unittest import TestCase

from ge_core_shared.db_actions import get_or_create, delete_entry, list_entry

from access_control import models

URN = "urn:test:me"


[docs]class GetOrCreateTestCase(TestCase):
[docs] def test_get_or_create(self): try: delete_entry(models.Resource, query={"urn": URN}) except Exception: pass # Successfully create a new object instance, created = get_or_create(models.Resource, urn=URN, description="Test") self.assertTrue(instance is not None) self.assertTrue(created) # Return existing object instance, created = get_or_create(models.Resource, id=instance.id, urn=URN) self.assertTrue(instance is not None) self.assertFalse(created)
[docs]class ListFiltersTestCase(TestCase):
[docs] @classmethod def setUpClass(cls): # Create a few domains. try: delete_entry(models.Domain, query={"name": "Domain 2"}) except Exception: pass try: delete_entry(models.Domain, query={"name": "Domain 1"}) except Exception: pass cls.domain_1, created = get_or_create( models.Domain, name="Domain 1", description="Test Domain" ) cls.domain_2, created = get_or_create( models.Domain, name="Domain 2", description="Test Domain", parent_id=cls.domain_1.id )
[docs] def test_list_entry(self): # Test get unfiltered list. entries = list_entry( models.Domain, query={ "order_by": ["id"] } ) # Maybe more than the two created but at least 2. self.assertGreaterEqual(len(entries), 2) # Test get list with single model id. entries = list_entry( models.Domain, query={ "ids": { "id": self.domain_1.id }, "order_by": ["id"] } ) self.assertEquals(len(entries), 1) # Test get list with model ids and an additional filter. entries = list_entry( models.Domain, query={ "ids": { "id": [self.domain_1.id, self.domain_2.id], "parent_id": self.domain_1.id }, "order_by": ["id"] } ) self.assertEquals(len(entries), 1) self.assertEquals(entries[0][0].id, self.domain_2.id)