From 21bd2b22e2a025b4419d79e9054faad1f504585e Mon Sep 17 00:00:00 2001 From: Sergey Skripnick Date: Thu, 30 May 2013 16:42:34 +0300 Subject: Add missing tests for nova.db.api.instance_system_metadata_* blueprint db-api-tests Change-Id: I2a7b24d3b7b0fa7af004a8106dfef29178a9aaa3 --- nova/tests/db/test_db_api.py | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/nova/tests/db/test_db_api.py b/nova/tests/db/test_db_api.py index 0a5b75bf4..90625554b 100644 --- a/nova/tests/db/test_db_api.py +++ b/nova/tests/db/test_db_api.py @@ -1313,6 +1313,54 @@ class ModelsObjectComparatorMixin(object): self.assertIn(primitive, primitives1) +class InstanceSystemMetadataTestCase(test.TestCase): + + """Tests for db.api.instance_system_metadata_* methods.""" + + def setUp(self): + super(InstanceSystemMetadataTestCase, self).setUp() + values = {'host': 'h1', 'project_id': 'p1', + 'system_metadata': {'key': 'value'}} + self.ctxt = context.get_admin_context() + self.instance = db.instance_create(self.ctxt, values) + + def test_instance_system_metadata_get(self): + metadata = db.instance_system_metadata_get(self.ctxt, + self.instance['uuid']) + self.assertEqual(metadata, {'key': 'value'}) + + def test_instance_system_metadata_update_new_pair(self): + db.instance_system_metadata_update( + self.ctxt, self.instance['uuid'], + {'new_key': 'new_value'}, False) + metadata = db.instance_system_metadata_get(self.ctxt, + self.instance['uuid']) + self.assertEqual(metadata, {'key': 'value', 'new_key': 'new_value'}) + + def test_instance_system_metadata_update_existent_pair(self): + db.instance_system_metadata_update( + self.ctxt, self.instance['uuid'], + {'key': 'new_value'}, True) + metadata = db.instance_system_metadata_get(self.ctxt, + self.instance['uuid']) + self.assertEqual(metadata, {'key': 'new_value'}) + + def test_instance_system_metadata_update_delete_true(self): + db.instance_system_metadata_update( + self.ctxt, self.instance['uuid'], + {'new_key': 'new_value'}, True) + metadata = db.instance_system_metadata_get(self.ctxt, + self.instance['uuid']) + self.assertEqual(metadata, {'new_key': 'new_value'}) + + @test.testtools.skip("bug 1189462") + def test_instance_system_metadata_update_nonexistent(self): + self.assertRaises(exception.InstanceNotFound, + db.instance_system_metadata_update, + self.ctxt, 'nonexistent-uuid', + {'key': 'value'}, True) + + class ReservationTestCase(test.TestCase, ModelsObjectComparatorMixin): """Tests for db.api.reservation_* methods.""" -- cgit