From 3fa27a2a339c09516b5ab52c5b0f1ef01f0928e2 Mon Sep 17 00:00:00 2001 From: Ross Brattain Date: Sun, 3 Sep 2017 20:32:55 -0700 Subject: apiserver: mock socket.gethostbyname we don't want use external DNS requests during unittest Change-Id: I5ed67b700ef1dab4b650ae5071a3cf641a17ae4c Signed-off-by: Ross Brattain --- tests/unit/apiserver/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tests/unit') diff --git a/tests/unit/apiserver/__init__.py b/tests/unit/apiserver/__init__.py index 1c9d5a672..5e1ed2ea1 100644 --- a/tests/unit/apiserver/__init__.py +++ b/tests/unit/apiserver/__init__.py @@ -1,5 +1,6 @@ from __future__ import absolute_import +import mock import os import socket import unittest @@ -16,6 +17,10 @@ class APITestCase(unittest.TestCase): self.db_fd, self.db_path = tempfile.mkstemp() consts.SQLITE = 'sqlite:///{}'.format(self.db_path) + # server calls gethostbyname which takes 4 seconds, and we should mock it anyway + self.socket_mock = mock.patch.dict("sys.modules", {"socket": mock.MagicMock( + **{"gethostbyname.return_value": "127.0.0.1", "gethostname.return_value": "localhost"})}) + self.socket_mock.start() try: from api import server except socket.gaierror: @@ -30,6 +35,7 @@ class APITestCase(unittest.TestCase): def tearDown(self): os.close(self.db_fd) os.unlink(self.db_path) + self.socket_mock.stop() def _post(self, url, data): headers = {'Content-Type': 'application/json'} -- cgit 1.2.3-korg