def test_image_create_defaults(self): timeutils.set_time_override() image = self.db_api.image_create(self.context, {"status": "queued"}) create_time = timeutils.utcnow() self.assertEqual(None, image["name"]) self.assertEqual(None, image["container_format"]) self.assertEqual(0, image["min_ram"]) self.assertEqual(0, image["min_disk"]) self.assertEqual(None, image["owner"]) self.assertEqual(False, image["is_public"]) self.assertEqual(None, image["size"]) self.assertEqual(None, image["checksum"]) self.assertEqual(None, image["disk_format"]) self.assertEqual([], image["locations"]) self.assertEqual(False, image["protected"]) self.assertEqual(False, image["deleted"]) self.assertEqual(None, image["deleted_at"]) self.assertEqual([], image["properties"]) self.assertEqual(image["created_at"], create_time) self.assertEqual(image["updated_at"], create_time) # Image IDs aren't predictable, but they should be populated self.assertTrue(uuid.UUID(image["id"])) # NOTE(bcwaldon): the tags attribute should not be returned as a part # of a core image entity self.assertFalse("tags" in image)
def test_image_member_create(self): timeutils.set_time_override() memberships = self.db_api.image_member_find(self.context) self.assertEqual([], memberships) create_time = timeutils.utcnow() TENANT1 = uuidutils.generate_uuid() self.db_api.image_member_create(self.context, { 'member': TENANT1, 'image_id': UUID1 }) memberships = self.db_api.image_member_find(self.context) self.assertEqual(1, len(memberships)) actual = memberships[0] self.assertEqual(actual['created_at'], create_time) self.assertEqual(actual['updated_at'], create_time) actual.pop('id') actual.pop('created_at') actual.pop('updated_at') expected = { 'member': TENANT1, 'image_id': UUID1, 'can_share': False, 'status': 'pending', } self.assertEqual(expected, actual)
def test_image_property_delete(self): fixture = {"name": "ping", "value": "pong", "image_id": UUID1} prop = self.db_api.image_property_create(self.context, fixture) timeutils.set_time_override() prop = self.db_api.image_property_delete(self.context, prop) self.assertEqual(prop["deleted_at"], timeutils.utcnow()) self.assertTrue(prop["deleted"])
def test_image_member_create(self): timeutils.set_time_override() memberships = self.db_api.image_member_find(self.context) self.assertEqual([], memberships) create_time = timeutils.utcnow() TENANT1 = uuidutils.generate_uuid() self.db_api.image_member_create(self.context, {'member': TENANT1, 'image_id': UUID1}) memberships = self.db_api.image_member_find(self.context) self.assertEqual(1, len(memberships)) actual = memberships[0] self.assertEqual(actual['created_at'], create_time) self.assertEqual(actual['updated_at'], create_time) actual.pop('id') actual.pop('created_at') actual.pop('updated_at') expected = { 'member': TENANT1, 'image_id': UUID1, 'can_share': False, 'status': 'pending', } self.assertEqual(expected, actual)
def setUp(self): super(TestTaskNotifications, self).setUp() self.task = TaskStub( task_id='aaa', type='import', status='pending', input={"loc": "fake"}, result='', owner=TENANT2, message='', expires_at=None, created_at=DATETIME, updated_at=DATETIME ) self.context = glance.context.RequestContext( tenant=TENANT2, user=USER1 ) self.task_repo_stub = TaskRepoStub() self.notifier = unit_test_utils.FakeNotifier() self.task_repo_proxy = glance.notifier.TaskRepoProxy( self.task_repo_stub, self.context, self.notifier ) self.task_proxy = glance.notifier.TaskProxy( self.task, self.context, self.notifier ) timeutils.set_time_override()
def test_image_property_delete(self): fixture = {'name': 'ping', 'value': 'pong', 'image_id': UUID1} prop = self.db_api.image_property_create(self.context, fixture) timeutils.set_time_override() prop = self.db_api.image_property_delete(self.context, prop) self.assertEqual(prop['deleted_at'], timeutils.utcnow()) self.assertTrue(prop['deleted'])
def test_image_create_defaults(self): timeutils.set_time_override() image = self.db_api.image_create(self.context, {'status': 'queued'}) create_time = timeutils.utcnow() self.assertEqual(None, image['name']) self.assertEqual(None, image['container_format']) self.assertEqual(0, image['min_ram']) self.assertEqual(0, image['min_disk']) self.assertEqual(None, image['owner']) self.assertEqual(False, image['is_public']) self.assertEqual(None, image['size']) self.assertEqual(None, image['checksum']) self.assertEqual(None, image['disk_format']) self.assertEqual([], image['locations']) self.assertEqual(False, image['protected']) self.assertEqual(False, image['deleted']) self.assertEqual(None, image['deleted_at']) self.assertEqual([], image['properties']) self.assertEqual(image['created_at'], create_time) self.assertEqual(image['updated_at'], create_time) # Image IDs aren't predictable, but they should be populated self.assertTrue(uuid.UUID(image['id'])) #NOTE(bcwaldon): the tags attribute should not be returned as a part # of a core image entity self.assertFalse('tags' in image)
def test_fail(self): timeutils.set_time_override() self.task.begin_processing() self.task.fail('{"message": "connection failed"}') self.assertEqual(self.task.status, 'failure') expected = (timeutils.utcnow() + datetime.timedelta(hours=CONF.task_time_to_live)) self.assertEqual(self.task.expires_at, expected) timeutils.clear_time_override()
def test_succeed(self): timeutils.set_time_override() self.task.begin_processing() self.task.succeed('{"location": "file://home"}') self.assertEqual(self.task.status, 'success') expected = (timeutils.utcnow() + datetime.timedelta(hours=CONF.task_time_to_live)) self.assertEqual(self.task.expires_at, expected) timeutils.clear_time_override()
def test_fail(self): timeutils.set_time_override() self.task.begin_processing() self.task.fail('{"message": "connection failed"}') self.assertEqual(self.task.status, 'failure') expected = (timeutils.utcnow() + datetime.timedelta(hours=CONF.task.task_time_to_live)) self.assertEqual( self.task.expires_at, expected ) timeutils.clear_time_override()
def test_succeed(self): timeutils.set_time_override() self.task.begin_processing() self.task.succeed('{"location": "file://home"}') self.assertEqual(self.task.status, 'success') expected = (timeutils.utcnow() + datetime.timedelta(hours=CONF.task.task_time_to_live)) self.assertEqual( self.task.expires_at, expected ) timeutils.clear_time_override()
def test_image_member_create(self): timeutils.set_time_override() memberships = self.db_api.image_member_find(self.context) self.assertEqual([], memberships) create_time = timeutils.utcnow() TENANT1 = uuidutils.generate_uuid() self.db_api.image_member_create(self.context, {"member": TENANT1, "image_id": UUID1}) memberships = self.db_api.image_member_find(self.context) self.assertEqual(1, len(memberships)) actual = memberships[0] self.assertEqual(actual["created_at"], create_time) self.assertEqual(actual["updated_at"], create_time) actual.pop("id") actual.pop("created_at") actual.pop("updated_at") expected = {"member": TENANT1, "image_id": UUID1, "can_share": False, "status": "pending"} self.assertEqual(expected, actual)
def setUp(self): super(TestTaskNotifications, self).setUp() self.task = TaskStub(task_id='aaa', type='import', status='pending', input={"loc": "fake"}, result='', owner=TENANT2, message='', expires_at=None, created_at=DATETIME, updated_at=DATETIME) self.context = glance.context.RequestContext(tenant=TENANT2, user=USER1) self.task_repo_stub = TaskRepoStub() self.notifier = unit_test_utils.FakeNotifier() self.task_repo_proxy = glance.notifier.TaskRepoProxy( self.task_repo_stub, self.context, self.notifier) self.task_proxy = glance.notifier.TaskProxy(self.task, self.context, self.notifier) timeutils.set_time_override()
def test_image_get_allow_deleted(self): timeutils.set_time_override() self.db_api.image_destroy(self.adm_context, UUID1) image = self.db_api.image_get(self.adm_context, UUID1) self.assertEquals(image['id'], self.fixtures[0]['id']) self.assertEquals(image['deleted_at'], timeutils.utcnow())