diff options
Diffstat (limited to 'app/test/scan')
-rw-r--r-- | app/test/scan/test_data/configurations.py | 1 | ||||
-rw-r--r-- | app/test/scan/test_data/scanner.py | 76 | ||||
-rw-r--r-- | app/test/scan/test_scan_metadata_parser.py | 2 | ||||
-rw-r--r-- | app/test/scan/test_scanner.py | 27 |
4 files changed, 77 insertions, 29 deletions
diff --git a/app/test/scan/test_data/configurations.py b/app/test/scan/test_data/configurations.py index 96dbc23..044ff0b 100644 --- a/app/test/scan/test_data/configurations.py +++ b/app/test/scan/test_data/configurations.py @@ -47,6 +47,7 @@ CONFIGURATIONS = { "provision": "Deploy", "env_type": "development", "name": "Monitoring", + "install_monitoring_client": True, "rabbitmq_port": "5672", "rabbitmq_pass": "osdna", "rabbitmq_user": "sensu", diff --git a/app/test/scan/test_data/scanner.py b/app/test/scan/test_data/scanner.py index 23838aa..ed2129f 100644 --- a/app/test/scan/test_data/scanner.py +++ b/app/test/scan/test_data/scanner.py @@ -10,13 +10,25 @@ import queue from discover.fetchers.folder_fetcher import FolderFetcher - SCANNER_TYPE_FOR_ENV = "ScanEnvironment" METADATA = { "scanners_package": "discover", "scanners": {} } +LINK_FINDERS_METADATA = { + "finders_package": "discover.link_finders", + "base_finder": "FindLinks", + "link_finders": [ + "FindLinksForInstanceVnics", + "FindLinksForOteps", + "FindLinksForVconnectors", + "FindLinksForVedges", + "FindLinksForVserviceVnics", + "FindLinksForPnics", + "FindImplicitLinks" + ] +} TYPE_TO_FETCH = { "type": "host_pnic", @@ -51,7 +63,8 @@ TYPES_TO_FETCH = [ }, { "type": "network_services_folder", - "fetcher": FolderFetcher("network_services", "network", "Network vServices") + "fetcher": FolderFetcher("network_services", "network", + "Network vServices") } ] @@ -149,9 +162,6 @@ TYPES_TO_FETCHES_FOR_SCAN_AGGREGATE = [{ "fetcher": "DbFetchAggregateHosts" }] - - - # id = 'RegionOne-aggregates' # obj = self.inv.get_by_id(self.env, id) obj = {'id': 'Mirantis-Liberty-Nvn'} @@ -159,7 +169,6 @@ id_field = 'id' child_id = '', child_type = '' - child_data = [ { 'id_path': '/Mirantis-Liberty-Nvn/Mirantis-Liberty-Nvn-regions', @@ -178,15 +187,23 @@ child_data = [ ] PARENT = { - "environment" : "Mirantis-Liberty-Xiaocong", - "id" : "node-6.cisco.com-vservices-dhcps", - "name" : "node-6.cisco.com-vservices-dhcps", - "object_name" : "DHCP servers", - "parent_id" : "node-6.cisco.com-vservices", - "parent_type" : "vservices_folder", - "show_in_tree" : True, - "text" : "DHCP servers", - "type" : "vservice_dhcps_folder" + "environment": "Mirantis-Liberty-Xiaocong", + "id": "node-6.cisco.com-vservices-dhcps", + "id_path": "/Mirantis-Liberty-Xiaocong/Mirantis-Liberty-Xiaocong-regions" + "/RegionOne/RegionOne-availability_zones" + "/internal/node-6.cisco.com" + "/node-6.cisco.com-vservices/node-6.cisco.com-vservices-dhcps", + "name": "node-6.cisco.com-vservices-dhcps", + "name_path": "/Mirantis-Liberty-Xiaocong/Regions" + "/RegionOne/Availability Zones" + "/internal/node-6.cisco.com" + "/vServices/DHCP servers", + "object_name": "DHCP servers", + "parent_id": "node-6.cisco.com-vservices", + "parent_type": "vservices_folder", + "show_in_tree": True, + "text": "DHCP servers", + "type": "vservice_dhcps_folder" } PARENT_WITHOUT_ID = { @@ -272,7 +289,6 @@ DB_RESULTS_WITHOUT_MASTER_PARENT_IN_DB = [ } ] - DICTIONARY_DB_RESULTS = { "name": "Mirantis-Liberty-Xiaocong-regions", "parent_type": "environment", @@ -283,18 +299,22 @@ DICTIONARY_DB_RESULTS = { } MASTER_PARENT = { - "create_object" : True, - "environment" : "Mirantis-Liberty-Xiaocong", - "id" : "node-6.cisco.com-vservices", - "id_path" : "/Mirantis-Liberty/Mirantis-Liberty-regions/RegionOne/RegionOne-availability_zones/internal/node-6.cisco.com/node-6.cisco.com-vservices", - "name" : "Vservices", - "name_path" : "/Mirantis-Liberty/Regions/RegionOne/Availability Zones/internal/node-6.cisco.com/Vservices", - "object_name" : "Vservices", - "parent_id" : "node-6.cisco.com", - "parent_type" : "host", - "show_in_tree" : True, - "text" : "Vservices", - "type" : "vservices_folder" + "create_object": True, + "environment": "Mirantis-Liberty-Xiaocong", + "id": "node-6.cisco.com-vservices", + "id_path": "/Mirantis-Liberty/Mirantis-Liberty-regions" + "/RegionOne/RegionOne-availability_zones" + "/internal/node-6.cisco.com/node-6.cisco.com-vservices", + "name": "Vservices", + "name_path": "/Mirantis-Liberty/Regions" + "/RegionOne/Availability Zones" + "/internal/node-6.cisco.com/Vservices", + "object_name": "Vservices", + "parent_id": "node-6.cisco.com", + "parent_type": "host", + "show_in_tree": True, + "text": "Vservices", + "type": "vservices_folder" } CONFIGURATIONS_WITHOUT_MECHANISM_DRIVERS = { diff --git a/app/test/scan/test_scan_metadata_parser.py b/app/test/scan/test_scan_metadata_parser.py index 91c11ef..5d91306 100644 --- a/app/test/scan/test_scan_metadata_parser.py +++ b/app/test/scan/test_scan_metadata_parser.py @@ -104,6 +104,8 @@ class TestScanMetadataParser(TestScan): 'input': METADATA_SCANNER_INCORRECT_FETCHER, 'msg': 'failed to find fetcher class f1 ' 'in scanner ScanAggregate type #1' + ' (could not import module discover.fetchers.f1.f1: ' + 'No module named \'discover.fetchers.f1\')' }, { 'input': METADATA_SCANNER_WITH_INCORRECT_CHILD, diff --git a/app/test/scan/test_scanner.py b/app/test/scan/test_scanner.py index 4a7536e..bd1a0e3 100644 --- a/app/test/scan/test_scanner.py +++ b/app/test/scan/test_scanner.py @@ -10,6 +10,9 @@ from discover.scanner import Scanner from test.scan.test_scan import TestScan from unittest.mock import MagicMock, patch + +from discover.link_finders.find_links_metadata_parser \ + import FindLinksMetadataParser from discover.scan_metadata_parser import ScanMetadataParser from test.scan.test_data.scanner import * from monitoring.setup.monitoring_setup_manager import MonitoringSetupManager @@ -19,7 +22,10 @@ class TestScanner(TestScan): def setUp(self): super().setUp() - ScanMetadataParser.parse_metadata_file = MagicMock(return_value=METADATA) + ScanMetadataParser.parse_metadata_file = \ + MagicMock(return_value=METADATA) + FindLinksMetadataParser.parse_metadata_file = \ + MagicMock(return_value=LINK_FINDERS_METADATA) self.scanner = Scanner() self.scanner.set_env(self.env) MonitoringSetupManager.create_setup = MagicMock() @@ -182,9 +188,11 @@ class TestScanner(TestScan): # store original method original_set = self.scanner.inv.set + original_get_by_id = self.scanner.inv.get_by_id # mock method self.scanner.inv.set = MagicMock() + self.scanner.inv.get_by_id = MagicMock(return_value=PARENT) self.scanner.scan_type(TYPE_TO_FETCH_FOR_ENVIRONMENT, PARENT, ID_FIELD) self.assertIn("projects", DB_RESULTS_WITH_PROJECT[0], @@ -193,43 +201,53 @@ class TestScanner(TestScan): "Can't delete the project key in the object") self.scanner.inv.set = original_set + self.scanner.inv.get_by_id = original_get_by_id @patch("discover.fetchers.folder_fetcher.FolderFetcher.get") def test_scan_type_without_create_object(self, fetcher_get): fetcher_get.return_value = DB_RESULTS_WITHOUT_CREATE_OBJECT original_set = self.scanner.inv.set + original_get_by_id = self.scanner.inv.get_by_id self.scanner.inv.set = MagicMock() + self.scanner.inv.get_by_id = MagicMock(return_value=PARENT) self.scanner.scan_type(TYPE_TO_FETCH_FOR_ENVIRONMENT, PARENT, ID_FIELD) self.assertEqual(self.scanner.inv.set.call_count, 0, "Set the object when the create object is false") self.scanner.inv.set = original_set + self.scanner.inv.get_by_id = original_get_by_id @patch("discover.fetchers.folder_fetcher.FolderFetcher.get") def test_scan_type_with_create_object(self, fetcher_get): fetcher_get.return_value = DB_RESULTS_WITH_CREATE_OBJECT original_set = self.scanner.inv.set + original_get_by_id = self.scanner.inv.get_by_id self.scanner.inv.set = MagicMock() + self.scanner.inv.get_by_id = MagicMock(return_value=PARENT) + self.scanner.scan_type(TYPE_TO_FETCH_FOR_ENVIRONMENT, PARENT, ID_FIELD) self.assertEqual(self.scanner.inv.set.call_count, 1, "Set the object when the create object is false") self.scanner.inv.set = original_set + self.scanner.inv.get_by_id = original_get_by_id @patch("discover.fetchers.folder_fetcher.FolderFetcher.get") def test_scan_type_with_children_scanner(self, fetcher_get): fetcher_get.return_value = DB_RESULTS_WITH_CREATE_OBJECT original_set = self.scanner.inv.set + original_get_by_id = self.scanner.inv.get_by_id original_queue_for_scan = self.scanner.queue_for_scan self.scanner.inv.set = MagicMock() + self.scanner.inv.get_by_id = MagicMock(return_value=PARENT) self.scanner.queue_for_scan = MagicMock() self.scanner.scan_type(TYPE_TO_FETCH_FOR_ENVIRONMENT, PARENT, ID_FIELD) @@ -238,6 +256,7 @@ class TestScanner(TestScan): "Can't put children scanner in the queue") self.scanner.inv.set = original_set + self.scanner.inv.get_by_id = original_get_by_id self.scanner.queue_for_scan = original_queue_for_scan @patch("discover.fetchers.folder_fetcher.FolderFetcher.get") @@ -245,9 +264,11 @@ class TestScanner(TestScan): fetcher_get.return_value = DB_RESULTS_WITH_CREATE_OBJECT original_set = self.scanner.inv.set + original_get_by_id = self.scanner.inv.get_by_id original_queue_for_scan = self.scanner.queue_for_scan self.scanner.inv.set = MagicMock() + self.scanner.inv.get_by_id = MagicMock(return_value=PARENT) self.scanner.queue_for_scan = MagicMock() self.scanner.scan_type(TYPE_TO_FETCH_FOR_ENV_WITHOUT_CHILDREN_FETCHER, @@ -257,6 +278,7 @@ class TestScanner(TestScan): "Can't put children scanner in the queue") self.scanner.inv.set = original_set + self.scanner.inv.get_by_id = original_get_by_id self.scanner.queue_for_scan = original_queue_for_scan @patch("discover.fetchers.folder_fetcher.FolderFetcher.get") @@ -264,9 +286,11 @@ class TestScanner(TestScan): fetcher_get.return_value = DB_RESULTS_WITH_CREATE_OBJECT original_set = self.scanner.inv.set + original_get_by_id = self.scanner.inv.get_by_id original_queue_for_scan = self.scanner.queue_for_scan self.scanner.inv.set = MagicMock() + self.scanner.inv.get_by_id = MagicMock(return_value=PARENT) self.scanner.queue_for_scan = MagicMock() result = self.scanner.scan_type(TYPE_TO_FETCH_FOR_ENVIRONMENT, PARENT, @@ -275,6 +299,7 @@ class TestScanner(TestScan): self.assertNotEqual(result, [], "Can't get children form scan_type") self.scanner.inv.set = original_set + self.scanner.inv.get_by_id = original_get_by_id self.scanner.queue_for_scan = original_queue_for_scan def test_scan_with_limit_to_child_type(self): |