aboutsummaryrefslogtreecommitdiffstats
path: root/app/test/event_based_scan/test_interface_delete.py
diff options
context:
space:
mode:
authorIlia Abashin <abashinos@gmail.com>2017-08-25 14:24:59 +0300
committerIlia Abashin <abashinos@gmail.com>2017-08-25 14:29:28 +0300
commit2f9d5cf583b4b5dd635f386cb9ac07435bd44cc8 (patch)
tree2c025d24aff9bb0192e6d221a4e989e327c72e7c /app/test/event_based_scan/test_interface_delete.py
parentde9f324ff628a6d9e870f06e6e216f65382a978b (diff)
Heavily refactored all event based scans
Restricted real mongo interaction. Still work to do, but it's a good start. Fixed a bug with old subnets not being properly deleted. Change-Id: I5f260e09f0e11a477a47cb031d397a454465123f Signed-off-by: Ilia Abashin <abashinos@gmail.com>
Diffstat (limited to 'app/test/event_based_scan/test_interface_delete.py')
-rw-r--r--app/test/event_based_scan/test_interface_delete.py44
1 files changed, 25 insertions, 19 deletions
diff --git a/app/test/event_based_scan/test_interface_delete.py b/app/test/event_based_scan/test_interface_delete.py
index b156758..e416be4 100644
--- a/app/test/event_based_scan/test_interface_delete.py
+++ b/app/test/event_based_scan/test_interface_delete.py
@@ -7,38 +7,44 @@
# which accompanies this distribution, and is available at #
# http://www.apache.org/licenses/LICENSE-2.0 #
###############################################################################
+from unittest.mock import patch
+
+from discover.events.event_base import EventResult
from discover.events.event_interface_delete import EventInterfaceDelete
-from discover.fetchers.api.api_access import ApiAccess
-from test.event_based_scan.test_data.event_payload_interface_delete import EVENT_PAYLOAD_INTERFACE_DELETE, NETWORK_DOC, \
- EVENT_PAYLOAD_REGION, PORT_DOC, ROUTER_DOCUMENT, HOST, VNIC_DOCS
+from test.event_based_scan.test_data.event_payload_interface_delete \
+ import EVENT_PAYLOAD_INTERFACE_DELETE, PORT_DOC, ROUTER_DOCUMENT
from test.event_based_scan.test_event import TestEvent
from utils.util import encode_router_id
class TestInterfaceDelete(TestEvent):
- def test_handle_interface_delete(self):
+
+ def get_by_id(self, env, object_id):
+ if object_id == self.port_id:
+ return PORT_DOC
+ elif object_id == self.router_id:
+ return ROUTER_DOCUMENT
+ else:
+ return None
+
+ @patch("discover.events.event_interface_delete.EventPortDelete")
+ def test_handle_interface_delete(self,
+ port_delete_class_mock):
self.values = EVENT_PAYLOAD_INTERFACE_DELETE
self.payload = self.values['payload']
self.interface = self.payload['router_interface']
-
self.port_id = self.interface['port_id']
self.host_id = self.values["publisher_id"].replace("network.", "", 1)
self.router_id = encode_router_id(self.host_id, self.interface['id'])
- # set document for instance deleting.
- self.set_item(NETWORK_DOC)
- self.set_item(PORT_DOC)
- self.set_item(ROUTER_DOCUMENT)
- self.set_item(HOST)
- self.set_item(VNIC_DOCS[0])
- ApiAccess.regions = EVENT_PAYLOAD_REGION
+ port_delete_mock = port_delete_class_mock.return_value
+ port_delete_mock.delete_port.return_value = EventResult(result=True)
+
+ self.inv.get_by_id.side_effect = self.get_by_id
- # delete interface
- EventInterfaceDelete().handle(self.env, self.values)
+ res = EventInterfaceDelete().handle(self.env, self.values)
- # assert data
- router_doc = self.inv.get_by_id(self.env, ROUTER_DOCUMENT['id'])
- self.assertNotIn(NETWORK_DOC['id'], router_doc['network'])
+ self.assertTrue(res.result)
+ self.assertTrue(port_delete_mock.delete_port.called)
+ self.inv.set.assert_called_with(ROUTER_DOCUMENT)
- self.assert_empty_by_id(PORT_DOC['id'])
- self.assert_empty_by_id(VNIC_DOCS[0]['id'])