aboutsummaryrefslogtreecommitdiffstats
path: root/app/test/event_based_scan/test_instance_update.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/test/event_based_scan/test_instance_update.py')
-rw-r--r--app/test/event_based_scan/test_instance_update.py34
1 files changed, 13 insertions, 21 deletions
diff --git a/app/test/event_based_scan/test_instance_update.py b/app/test/event_based_scan/test_instance_update.py
index 6abccb5..b16a5b7 100644
--- a/app/test/event_based_scan/test_instance_update.py
+++ b/app/test/event_based_scan/test_instance_update.py
@@ -8,7 +8,9 @@
# http://www.apache.org/licenses/LICENSE-2.0 #
###############################################################################
from discover.events.event_instance_update import EventInstanceUpdate
-from test.event_based_scan.test_data.event_payload_instance_update import EVENT_PAYLOAD_INSTANCE_UPDATE, INSTANCE_DOCUMENT
+from test.event_based_scan.test_data.event_payload_instance_update \
+ import EVENT_PAYLOAD_INSTANCE_UPDATE, INSTANCE_DOCUMENT, \
+ UPDATED_INSTANCE_FIELDS
from test.event_based_scan.test_event import TestEvent
@@ -18,29 +20,19 @@ class TestInstanceUpdate(TestEvent):
self.values = EVENT_PAYLOAD_INSTANCE_UPDATE
payload = self.values['payload']
self.instance_id = payload['instance_id']
- self.item_ids.append(self.instance_id)
- new_name = payload['display_name']
- # preparing instance to be updated
- instance = self.inv.get_by_id(self.env, self.instance_id)
- if not instance:
- self.log.info("instance document is not found, add document for updating")
+ instance = INSTANCE_DOCUMENT
- # add instance document for updating
- self.set_item(INSTANCE_DOCUMENT)
- instance = self.inv.get_by_id(self.env, self.instance_id)
- self.assertIsNotNone(instance)
- self.assertEqual(instance['name'], INSTANCE_DOCUMENT['name'])
-
- name_path = instance['name_path']
- new_name_path = name_path[:name_path.rindex('/') + 1] + new_name
+ self.inv.get_by_id.return_value = instance
# update instance document
- EventInstanceUpdate().handle(self.env, self.values)
+ res = EventInstanceUpdate().handle(self.env, self.values)
- # get new document
- instance = self.inv.get_by_id(self.env, self.instance_id)
+ self.assertTrue(res.result)
+ self.assertTrue(self.inv.values_replace.called)
+ self.assertTrue(self.inv.set.called)
- # check update result.
- self.assertEqual(instance['name'], new_name)
- self.assertEqual(instance['name_path'], new_name_path)
+ # check that all changed fields are updated
+ call_args, _ = self.inv.set.call_args
+ self.assertTrue(all(item in call_args[0].items()
+ for item in UPDATED_INSTANCE_FIELDS.items()))