Я работаю над аналогичной задачей. Вот частичное решение, которое я придумала до сих пор
class TestA(unittest.TestCase):
def setUp(self):
self.mock_request = Mock()
@patch('http.server.HTTPServer')
@patch('my_module.A.do_GET')
def test_do_get(self, mock_do_get, mock_http_server):
"""Test if do_GET method gets called"""
mock_do_get.return_value = "/"
self.mock_request.makefile.return_value = IO(b"GET /")
server = A(self.mock_request, ('127.0.0.1', 8080), mock_http_server)
self.assertTrue(mock_do_get.called)
self.assertEqual(server.do_GET(), "/")