From 18433592a855cf68379408cec44336d0086d5f71 Mon Sep 17 00:00:00 2001 From: Rui Yuan Dou Date: Tue, 18 Dec 2018 16:09:44 +0800 Subject: [PATCH] Add save aggregate metadata test case Change-Id: I8a63c033043e0e4f92b3f080ab5cabc4a85f1841 Closes-Bug: #1808933 --- mogan/tests/unit/objects/test_aggregate.py | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mogan/tests/unit/objects/test_aggregate.py b/mogan/tests/unit/objects/test_aggregate.py index 91fd5cec..3ece2f69 100644 --- a/mogan/tests/unit/objects/test_aggregate.py +++ b/mogan/tests/unit/objects/test_aggregate.py @@ -67,3 +67,30 @@ class TestAggregateObject(base.DbTestCase): mock_aggregate_update.return_value = self.fake_aggregate mock_aggregate_update.assert_called_once_with( self.context, id, updates) + + def test_save_metadata(self): + add_meta = {'add_meta': 'addval'} + del_meta = {'del_meta': 'delval'} + id = self.fake_aggregate['id'] + with mock.patch.object(self.dbapi, 'aggregate_update', + autospec=True) as mock_aggregate_update: + with mock.patch.object( + self.dbapi, 'aggregate_metadata_update_or_create', + autospec=True) as mock_aggregate_upcreate: + with mock.patch.object( + self.dbapi, 'aggregate_metadata_delete', + autospec=True) as mock_aggregate_delete: + aggregate = objects.Aggregate(self.context, + **self.fake_aggregate) + aggregate._orig_metadata = del_meta + aggregate.metadata = add_meta + updates = aggregate.obj_get_changes() + del updates['metadata'] + aggregate.save(self.context) + mock_aggregate_update.return_value = self.fake_aggregate + mock_aggregate_upcreate.assert_called_once_with( + self.context, id, add_meta) + mock_aggregate_delete.assert_called_once_with( + self.context, id, 'del_meta') + mock_aggregate_update.assert_called_once_with( + self.context, id, updates)