I'm testing basic GET requests under from the requests module. I'm using requests.Session to create a session instance which is later passed into the function. I'm mocking the the function calls. I've patched the session.get call within the function, however I get the following error:  AssertionError: get('https://example-name/v1/0001') call not found  I'm assuming I haven't patched the location correctly but I'm not sure where specifically I am going wrong. main.py import requests base_url = "https://example-name/v1/" session = requests.Session() def fetch_data_with_session(session, base_url, endpoint): response = session.get(base_url + endpoint) return response.json()  test_main.py import unittest from requests import Session from main import fetch_data_with_session from unittest.mock import Mock, patch class TestingGet(unittest.TestCase): @patch.object(Session, 'get') def test_fetch(self, mock_get): data = { "id": "0001", "name": "John Doe", } mock_response = Mock() mock_response.json.return_value = data mock_get.return_value = mock_response mock_session = Mock() retrieved_get_data = fetch_data_with_session(mock_session, "https://example-name/v1/", "0001") mock_get.assert_any_call("https://example-name/v1/0001") self.assertEqual = (outages_data, data) if __name__ == '__main__': unittest.main()  I also tried using the mock.get.assert_called_with and got a similar error. assert_called_with raise AssertionError(error_message) AssertionError: expected call not found. Expected: get('https://example-name/v1/0001') Actual: not called.  Again, I'm assuming I'm not patching the GET call correctly, but not sure how to correct it. EDIT: Thanks @Guy who provided the answer. The updated module code is below. Please see @Guy's answer for the explanation @patch.object(requests.Session, 'get') def test_fetch(self, mock_get): data = { "id": "exampleID", "name": "example", "devices": [ { "id": "0001", "name": "Device A" } ] } mock_response = Mock() mock_response.json.return_value = data mock_get.return_value = mock_response outages_data = fetch_data_with_session(mock_get, "https://example-name/v1/", "0001") mock_get.get.assert_called_with("https://example-name/v1/0001") self.assertEqual = (outages_data, data) 
There are two issues in you code  You use mock_session for the API call but test mock_get for it  mock_get and mock_session are the session.get function, not Session instance   Simplified test with two options @patch.object(Session, 'get') def test_fetch(self, mock_get): fetch_data_with_session(mock_get, "https://example-name/v1/", "0001") mock_get.assert_any_call("https://example-name/v1/0001") # or mock_session = Mock() fetch_data_with_session(mock_session, "https://example-name/v1/", "0001") mock_session.assert_any_call("https://example-name/v1/0001")  and main.py def fetch_data_with_session(get, base_url, endpoint): response = get(base_url + endpoint) return response.json() 