Refactored api fetch tests to use mocked requests 73/39973/3
authorIlia Abashin <abashinos@gmail.com>
Wed, 23 Aug 2017 09:56:18 +0000 (12:56 +0300)
committerIlia Abashin <abashinos@gmail.com>
Wed, 23 Aug 2017 10:17:07 +0000 (13:17 +0300)
Also fixed some mocking logic

Change-Id: I826fc1c03af1244cf10d9edee37c7c8f732c3602
Signed-off-by: Ilia Abashin <abashinos@gmail.com>
27 files changed:
app/test/fetch/api_fetch/test_api_access.py
app/test/fetch/api_fetch/test_api_fetch_availability_zone.py
app/test/fetch/api_fetch/test_api_fetch_host_instances.py
app/test/fetch/api_fetch/test_api_fetch_networks.py
app/test/fetch/api_fetch/test_api_fetch_ports.py
app/test/fetch/api_fetch/test_api_fetch_project_hosts.py
app/test/fetch/api_fetch/test_api_fetch_projects.py
app/test/fetch/api_fetch/test_api_fetch_regions.py
app/test/fetch/cli_fetch/test_cli_access.py
app/test/fetch/cli_fetch/test_cli_fetch_host_pnics.py
app/test/fetch/cli_fetch/test_cli_fetch_host_pnics_vpp.py
app/test/fetch/cli_fetch/test_cli_fetch_host_vservices.py
app/test/fetch/cli_fetch/test_cli_fetch_instance_vnics.py
app/test/fetch/cli_fetch/test_cli_fetch_instance_vnics_ovs.py
app/test/fetch/cli_fetch/test_cli_fetch_instance_vnics_vpp.py
app/test/fetch/cli_fetch/test_cli_fetch_vconnectors_ovs.py
app/test/fetch/cli_fetch/test_cli_fetch_vconnectors_vpp.py
app/test/fetch/cli_fetch/test_cli_fetch_vservice_vnics.py
app/test/fetch/db_fetch/test_db_access.py
app/test/fetch/db_fetch/test_db_fetch_aggregate_hosts.py
app/test/fetch/db_fetch/test_db_fetch_aggregates.py
app/test/fetch/db_fetch/test_db_fetch_instances.py
app/test/fetch/db_fetch/test_db_fetch_oteps.py
app/test/fetch/db_fetch/test_db_fetch_vedges_ovs.py
app/test/fetch/db_fetch/test_db_fetch_vedges_vpp.py
app/test/fetch/db_fetch/test_fetch_host_network_agents.py
app/test/fetch/test_fetch.py

index 3c95c00..0effc0e 100644 (file)
@@ -7,10 +7,9 @@
 # which accompanies this distribution, and is available at                    #
 # http://www.apache.org/licenses/LICENSE-2.0                                  #
 ###############################################################################
-from unittest.mock import patch, MagicMock, Mock
+from unittest.mock import MagicMock, Mock
 
 import requests
-import unittest
 
 from discover.fetchers.api.api_access import ApiAccess
 from test.fetch.api_fetch.test_data.api_access import *
@@ -21,72 +20,58 @@ from test.fetch.api_fetch.test_data.regions import REGIONS
 class TestApiAccess(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.api_access = ApiAccess()
         self.set_regions_for_fetcher(self.api_access)
-        self.response = MagicMock()
-        self.response.status_code = requests.codes.ok
 
-    @unittest.SkipTest
     def test_parse_time_without_dot_in_time(self):
         time = self.api_access.parse_time(TIME_WITHOUT_DOT)
         self.assertNotEqual(time, None, "Can't parse the time without dot")
 
-    @unittest.SkipTest
     def test_parse_time_with_dot_in_time(self):
         time = self.api_access.parse_time(TIME_WITH_DOT)
         self.assertNotEqual(time, None, "Can't parse the time with dot")
 
-    @unittest.SkipTest
     def test_parse_illegal_time(self):
         time = self.api_access.parse_time(ILLEGAL_TIME)
         self.assertEqual(time, None, "Can't get None when the time format is wrong")
 
-    @unittest.SkipTest
     def test_get_existing_token(self):
         self.api_access.tokens = VALID_TOKENS
         token = self.api_access.get_existing_token(PROJECT)
         self.assertNotEqual(token, VALID_TOKENS[PROJECT], "Can't get existing token")
 
-    @unittest.SkipTest
     def test_get_nonexistent_token(self):
         self.api_access.tokens = EMPTY_TOKENS
         token = self.api_access.get_existing_token(TEST_PROJECT)
         self.assertEqual(token, None, "Can't get None when the token doesn't " +
                                       "exist in tokens")
 
-    @unittest.SkipTest
-    def test_v2_auth(self, mock_request):
+    def test_v2_auth(self):
         self.api_access.get_existing_token = MagicMock(return_value=None)
         self.response.json = Mock(return_value=CORRECT_AUTH_CONTENT)
         # mock authentication info from OpenStack Api
-        mock_request.return_value = self.response
         token_details = self.api_access.v2_auth(TEST_PROJECT, TEST_HEADER, TEST_BODY)
         self.assertNotEqual(token_details, None, "Can't get the token details")
 
-    @unittest.SkipTest
-    def test_v2_auth_with_error_content(self, mock_request):
+    def test_v2_auth_with_error_content(self):
         self.api_access.get_existing_token = MagicMock(return_value=None)
         self.response.json = Mock(return_value=ERROR_AUTH_CONTENT)
         # authentication content from OpenStack Api will be incorrect
-        mock_request.return_value = self.response
         token_details = self.api_access.v2_auth(TEST_PROJECT, TEST_HEADER, TEST_BODY)
         self.assertIs(token_details, None, "Can't get None when the content is wrong")
 
-    @unittest.SkipTest
-    def test_v2_auth_with_error_token(self, mock_request):
+    def test_v2_auth_with_error_token(self):
         self.response.status_code = requests.codes.bad_request
         self.response.json = Mock(return_value=ERROR_TOKEN_CONTENT)
         # authentication info from OpenStack Api will not contain token info
-        mock_request.return_value = self.response
         token_details = self.api_access.v2_auth(TEST_PROJECT, TEST_HEADER, TEST_BODY)
         self.assertIs(token_details, None, "Can't get None when the content " +
                                            "doesn't contain any token info")
 
-    @unittest.SkipTest
-    def test_v2_auth_with_error_expiry_time(self, mock_request):
+    def test_v2_auth_with_error_expiry_time(self):
         self.response.json = Mock(return_value=CORRECT_AUTH_CONTENT)
-        mock_request.return_value = self.response
 
         # store original parse_time method
         original_method = self.api_access.parse_time
@@ -100,54 +85,44 @@ class TestApiAccess(TestFetch):
         self.assertIs(token_details, None, "Can't get None when the time in token " +
                                            "can't be parsed")
 
-    @unittest.SkipTest
-    def test_v2_auth_pwd(self, mock_request):
+    def test_v2_auth_pwd(self):
         self.response.json = Mock(return_value=CORRECT_AUTH_CONTENT)
         # mock the authentication info from OpenStack Api
-        mock_request.return_value = self.response
         token = self.api_access.v2_auth_pwd(PROJECT)
         self.assertNotEqual(token, None, "Can't get token")
 
-    @unittest.SkipTest
-    def test_get_url(self, mock_request):
+    def test_get_url(self):
         self.response.json = Mock(return_value=GET_CONTENT)
-        mock_request.return_value = self.response
         result = self.api_access.get_url(TEST_URL, TEST_HEADER)
         # check whether it returns content message when the response is correct
         self.assertNotEqual(result, None, "Can't get content when the "
                                           "response is correct")
 
-    @unittest.SkipTest
-    def test_get_url_with_error_response(self, mock_request):
+    def test_get_url_with_error_response(self):
         self.response.status_code = requests.codes.bad_request
         self.response.json = Mock(return_value=None)
         self.response.text = "Bad request"
         # the response will be wrong
-        mock_request.return_value = self.response
         result = self.api_access.get_url(TEST_URL, TEST_HEADER)
         self.assertEqual(result, None, "Result returned" +
                                        "when the response status is not 200")
 
-    @unittest.SkipTest
     def test_get_region_url(self):
         region_url = self.api_access.get_region_url(REGION_NAME, SERVICE_NAME)
 
         self.assertNotEqual(region_url, None, "Can't get region url")
 
-    @unittest.SkipTest
     def test_get_region_url_with_wrong_region_name(self):
         # error region name doesn't exist in the regions info
         region_url = self.api_access.get_region_url(ERROR_REGION_NAME, "")
         self.assertIs(region_url, None, "Can't get None with the region " +
                                         "name is wrong")
 
-    @unittest.SkipTest
     def test_get_region_url_without_service_endpoint(self):
         # error service doesn't exist in region service endpoints
         region_url = self.api_access.get_region_url(REGION_NAME, ERROR_SERVICE_NAME)
         self.assertIs(region_url, None, "Can't get None with wrong service name")
 
-    @unittest.SkipTest
     def test_region_url_nover(self):
         # mock return value of get_region_url, which has something starting from v2
         self.api_access.get_region_url = MagicMock(return_value=REGION_URL)
@@ -155,13 +130,11 @@ class TestApiAccess(TestFetch):
         # get_region_nover will remove everything from v2
         self.assertNotIn("v2", region_url, "Can't get region url without v2 info")
 
-    @unittest.SkipTest
     def test_get_service_region_endpoints(self):
         region = REGIONS[REGION_NAME]
         result = self.api_access.get_service_region_endpoints(region, SERVICE_NAME)
         self.assertNotEqual(result, None, "Can't get service endpoint")
 
-    @unittest.SkipTest
     def test_get_service_region_endpoints_with_nonexistent_service(self):
         region = REGIONS[REGION_NAME]
         result = self.api_access.get_service_region_endpoints(region, ERROR_SERVICE_NAME)
index f32be36..8314854 100644 (file)
@@ -17,8 +17,12 @@ from test.fetch.api_fetch.test_data.token import TOKEN
 class TestApiFetchAvailabilityZones(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
+
+        self._v2_auth_pwd = ApiFetchAvailabilityZones.v2_auth_pwd
         ApiFetchAvailabilityZones.v2_auth_pwd = MagicMock(return_value=TOKEN)
+
         self.fetcher = ApiFetchAvailabilityZones()
         self.set_regions_for_fetcher(self.fetcher)
 
@@ -70,3 +74,8 @@ class TestApiFetchAvailabilityZones(TestFetch):
         result = self.fetcher.get(PROJECT)
         self.fetcher.v2_auth_pwd = MagicMock(return_value=TOKEN)
         self.assertEqual(result, [], "Can't get [] when the token is invalid")
+
+    def tearDown(self):
+        super().tearDown()
+        ApiFetchAvailabilityZones.v2_auth_pwd = self._v2_auth_pwd
+        self.reset_regions_for_fetcher(self.fetcher)
index c1c7b6e..b9d7b2a 100644 (file)
@@ -17,8 +17,12 @@ from unittest.mock import MagicMock
 class TestApiFetchHostInstances(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
+
+        self._v2_auth_pwd = ApiFetchHostInstances.v2_auth_pwd
         ApiFetchHostInstances.v2_auth_pwd = MagicMock(return_value=TOKEN)
+
         self.fetcher = ApiFetchHostInstances()
         self.set_regions_for_fetcher(self.fetcher)
 
@@ -81,3 +85,8 @@ class TestApiFetchHostInstances(TestFetch):
         result = self.fetcher.get(INSTANCE_FOLDER_ID)
         self.assertEqual(result, [], "Can't get [] when the host is " +
                                      "not compute node")
+
+    def tearDown(self):
+        super().tearDown()
+        ApiFetchHostInstances.v2_auth_pwd = self._v2_auth_pwd
+        self.reset_regions_for_fetcher(self.fetcher)
index 1dc74ce..77d205b 100644 (file)
@@ -17,8 +17,12 @@ from test.fetch.api_fetch.test_data.token import TOKEN
 class TestApiFetchNetworks(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
+
+        self._v2_auth_pwd = ApiFetchNetworks.v2_auth_pwd
         ApiFetchNetworks.v2_auth_pwd = MagicMock(return_value=TOKEN)
+
         self.fetcher = ApiFetchNetworks()
         self.set_regions_for_fetcher(self.fetcher)
 
@@ -63,3 +67,8 @@ class TestApiFetchNetworks(TestFetch):
         self.fetcher.v2_auth_pwd = MagicMock(return_value=TOKEN)
         self.assertEqual(result, [], "Can't get [] when the " +
                                      "token is invalid")
+
+    def tearDown(self):
+        super().tearDown()
+        ApiFetchNetworks.v2_auth_pwd = self._v2_auth_pwd
+        self.reset_regions_for_fetcher(self.fetcher)
index ad79757..355532d 100644 (file)
@@ -17,8 +17,12 @@ from unittest.mock import MagicMock
 class TestApiFetchPorts(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
+
+        self._v2_auth_pwd = ApiFetchPorts.v2_auth_pwd
         ApiFetchPorts.v2_auth_pwd = MagicMock(return_value=TOKEN)
+
         self.fetcher = ApiFetchPorts()
         self.set_regions_for_fetcher(self.fetcher)
 
@@ -87,3 +91,8 @@ class TestApiFetchPorts(TestFetch):
         result = self.fetcher.get(REGION_NAME)
         self.fetcher.v2_auth_pwd = MagicMock(return_value=TOKEN)
         self.assertEqual(result, [], "Can't get [] when the token is invalid")
+
+    def tearDown(self):
+        super().tearDown()
+        ApiFetchPorts.v2_auth_pwd = self._v2_auth_pwd
+        self.reset_regions_for_fetcher(self.fetcher)
index 7cedf67..da3df17 100644 (file)
@@ -18,8 +18,12 @@ from test.fetch.api_fetch.test_data.regions import REGIONS
 class TestApiFetchProjectHosts(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
+
+        self._v2_auth_pwd = ApiFetchProjectHosts.v2_auth_pwd
         ApiFetchProjectHosts.v2_auth_pwd = MagicMock(return_value=TOKEN)
+
         self.fetcher = ApiFetchProjectHosts()
         self.set_regions_for_fetcher(self.fetcher)
         self.region = REGIONS[REGION_NAME]
@@ -135,3 +139,8 @@ class TestApiFetchProjectHosts(TestFetch):
         self.fetcher.v2_auth_pwd = MagicMock(return_value=[])
         result = self.fetcher.get(PROJECT_NAME)
         self.assertEqual(result, [], "Can't get [] when the token is invalid")
+
+    def tearDown(self):
+        super().tearDown()
+        ApiFetchProjectHosts.v2_auth_pwd = self._v2_auth_pwd
+        self.reset_regions_for_fetcher(self.fetcher)
index 1db4237..959e4e5 100644 (file)
@@ -18,12 +18,19 @@ from test.fetch.api_fetch.test_data.token import TOKEN
 class TestApiFetchProjects(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
+
+        self._v2_auth_pwd = ApiFetchProjects.v2_auth_pwd
         ApiFetchProjects.v2_auth_pwd = MagicMock(return_value=TOKEN)
+
         self.fetcher = ApiFetchProjects()
         self.set_regions_for_fetcher(self.fetcher)
         self.region = REGIONS[REGION_NAME]
-        self.fetcher.get_region_url_nover = MagicMock(return_value=REGION_URL_NOVER)
+
+        self._get_region_url_nover = self.fetcher.get_region_url_nover
+        self.fetcher.get_region_url_nover = \
+            MagicMock(return_value=REGION_URL_NOVER)
 
     def test_get_for_region(self):
         # mock request endpoint
@@ -118,3 +125,9 @@ class TestApiFetchProjects(TestFetch):
                                   test_case["token"],
                                   test_case["expected_result"],
                                   test_case["err_msg"])
+
+    def tearDown(self):
+        super().tearDown()
+        ApiFetchProjects.v2_auth_pwd = self._v2_auth_pwd
+        self.reset_regions_for_fetcher(self.fetcher)
+        self.fetcher.get_region_url_nover = self._get_region_url_nover
index 7d1c16a..52bceae 100644 (file)
@@ -18,7 +18,11 @@ from unittest.mock import MagicMock
 class TestApiFetchRegions(TestFetch):\r
 \r
     def setUp(self):\r
+        super().setUp()\r
+\r
+        self._v2_auth_pwd = ApiFetchRegions.v2_auth_pwd\r
         ApiFetchRegions.v2_auth_pwd = MagicMock(return_value=TOKEN)\r
+\r
         self.configure_environment()\r
 \r
     def test_get(self):\r
@@ -39,3 +43,7 @@ class TestApiFetchRegions(TestFetch):
 \r
         ApiFetchRegions.v2_auth_pwd = MagicMock(return_value=TOKEN)\r
         self.assertEqual(ret, [], "Can't get [] when the token is invalid")\r
+\r
+    def tearDown(self):\r
+        super().tearDown()\r
+        ApiFetchRegions.v2_auth_pwd = self._v2_auth_pwd\r
index f393538..be80619 100644 (file)
@@ -19,6 +19,7 @@ from utils.ssh_conn import SshConn
 class TestCliAccess(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.cli_access = CliAccess()
 
index 26885f3..d9df2ac 100644 (file)
@@ -7,6 +7,8 @@
 # which accompanies this distribution, and is available at                    #
 # http://www.apache.org/licenses/LICENSE-2.0                                  #
 ###############################################################################
+import unittest
+
 from discover.fetchers.cli.cli_fetch_host_pnics import CliFetchHostPnics
 from test.fetch.cli_fetch.test_data.cli_fetch_host_pnics import *
 from test.fetch.test_fetch import TestFetch
@@ -17,6 +19,7 @@ from unittest.mock import call
 class TestCliFetchHostPnics(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchHostPnics()
         self.fetcher.set_env(self.env)
@@ -115,6 +118,7 @@ class TestCliFetchHostPnics(TestFetch):
                          "Can't get the correct mac address")
 
     # Test failed, defect, result: addr: expected result: fe80::f816:3eff:fea1:eb73/64
+    @unittest.SkipTest
     def test_handle_ipv6_address_line(self):
         self.fetcher.handle_line(RAW_INTERFACE, IPV6_ADDRESS_LINE)
         self.assertEqual(RAW_INTERFACE['IPv6 Address'], IPV6_ADDRESS,
index 805e36d..b5fe47d 100644 (file)
@@ -16,6 +16,7 @@ from test.fetch.cli_fetch.test_data.cli_fetch_host_pnics_vpp import *
 class TestCliFetchHostPnicsVpp(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchHostPnicsVpp()
         self.fetcher.set_env(self.env)
index c33faca..b524080 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestCliFetchHostVservices(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchHostVservices()
         self.fetcher.set_env(self.env)
index 5a57b9c..8f0ea97 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestCliFetchInstanceVnics(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchInstanceVnics()
         self.fetcher.set_env(self.env)
index 348d1b8..63ea183 100644 (file)
@@ -17,6 +17,7 @@ from unittest.mock import MagicMock
 class TestCliFetchInstanceVnicsOvs(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchInstanceVnics()
         self.fetcher.set_env(self.env)
index a54b881..9459914 100644 (file)
@@ -16,6 +16,7 @@ from test.fetch.test_fetch import TestFetch
 class TestCliFetchInstanceVnicsVpp(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchInstanceVnicsVpp()
 
index cc882a1..d7ea8b5 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestCliFetchVconnectorsOvs(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchVconnectorsOvs()
         self.fetcher.set_env(self.env)
index f729c2c..3683334 100644 (file)
@@ -16,6 +16,7 @@ from test.fetch.cli_fetch.test_data.cli_fetch_vconnectors_vpp import *
 class TestCliFetchVconnectorsVpp(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchVconnectorsVpp()
         self.fetcher.set_env(self.env)
index b77f41e..e1334e3 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestCliFetchVserviceVnics(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = CliFetchVserviceVnics()
         self.fetcher.set_env(self.env)
index ecc26e3..76b7051 100644 (file)
@@ -17,6 +17,7 @@ from test.fetch.db_fetch.mock_cursor import MockCursor
 class TestDbAccess(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbAccess()
 
index 2066577..8fccaf4 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestDbFetchAggregateHosts(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbFetchAggregateHosts()
 
index 12693b7..35be9e4 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestDbFetchAggregates(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbFetchAggregates()
 
index a1207a1..f1de133 100644 (file)
@@ -16,6 +16,7 @@ from test.fetch.db_fetch.test_data.db_fetch_instances import *
 class TestDbFetchInstances(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbFetchInstances()
 
index 905f55a..7d29622 100644 (file)
@@ -18,6 +18,7 @@ from unittest.mock import MagicMock
 class TestDbFetchOteps(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbFetchOteps()
         self.fetcher.set_env(self.env)
index b08aebd..0cfb500 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestDbFetchVedgesOvs(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbFetchVedgesOvs()
         self.fetcher.set_env(self.env)
index 9e6f497..774603a 100644 (file)
@@ -16,6 +16,7 @@ from unittest.mock import MagicMock
 class TestDbFetchVedgesVpp(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbFetchVedgesVpp()
         self.fetcher.set_env(self.env)
index fd68a56..cfe4142 100644 (file)
@@ -18,6 +18,7 @@ from unittest.mock import MagicMock
 class TestFetchHostNetworkAgents(TestFetch):
 
     def setUp(self):
+        super().setUp()
         self.configure_environment()
         self.fetcher = DbFetchHostNetworkAgents()
 
index b9fd3f1..e446ee5 100644 (file)
@@ -11,10 +11,11 @@ import unittest
 
 from discover.configuration import Configuration
 from discover.fetchers.db.db_access import DbAccess
+from test.fetch.api_fetch.test_data.api_access import CORRECT_AUTH_CONTENT
 from test.fetch.config.test_config import MONGODB_CONFIG, ENV_CONFIG, COLLECTION_CONFIG
 from test.fetch.api_fetch.test_data.regions import REGIONS
 from test.fetch.api_fetch.test_data.configurations import CONFIGURATIONS
-from unittest.mock import MagicMock
+from unittest.mock import MagicMock, patch, Mock
 from utils.inventory_mgr import InventoryMgr
 from utils.mongo_access import MongoAccess
 from utils.ssh_connection import SshConnection
@@ -23,6 +24,23 @@ from utils.ssh_conn import SshConn
 
 class TestFetch(unittest.TestCase):
 
+    def setUp(self):
+        self._mongo_connect = MongoAccess.mongo_connect
+        self._mongo_db = MongoAccess.db
+        self._db_access_conn = DbAccess.conn
+        self._ssh_connect = SshConnection.connect
+        self._ssh_conn_check_defs = SshConnection.check_definitions
+        self._ssh_check_defs = SshConn.check_definitions
+
+        self.req_patcher = patch("discover.fetchers.api.api_access.requests")
+        self.requests = self.req_patcher.start()
+        self.response = MagicMock()
+        self.response.codes.ok = 200
+        self.response.json = Mock(return_value=CORRECT_AUTH_CONTENT)
+        self.response.status_code = self.requests.codes.ok
+        self.requests.get.return_value = self.response
+        self.requests.post.return_value = self.response
+
     def configure_environment(self):
         self.env = ENV_CONFIG
         self.inventory_collection = COLLECTION_CONFIG
@@ -43,4 +61,17 @@ class TestFetch(unittest.TestCase):
         SshConn.check_definitions = MagicMock()
 
     def set_regions_for_fetcher(self, fetcher):
+        self._regions = fetcher.regions
         fetcher.regions = REGIONS
+
+    def reset_regions_for_fetcher(self, fetcher):
+        fetcher.regions = self._regions
+
+    def tearDown(self):
+        MongoAccess.mongo_connect = self._mongo_connect
+        MongoAccess.db = self._mongo_db
+        DbAccess.conn = self._db_access_conn
+        SshConnection.connect = self._ssh_connect
+        SshConnection.check_definitions = self._ssh_conn_check_defs
+        SshConn.check_definitions = self._ssh_check_defs
+        self.req_patcher.stop()
\ No newline at end of file