Merge "apiserver: mock socket.gethostbyname"
[yardstick.git] / tests / unit / apiserver / __init__.py
index 0214152..5e1ed2e 100644 (file)
@@ -1,6 +1,8 @@
 from __future__ import absolute_import
 
+import mock
 import os
+import socket
 import unittest
 import tempfile
 
@@ -14,7 +16,16 @@ class APITestCase(unittest.TestCase):
     def setUp(self):
         self.db_fd, self.db_path = tempfile.mkstemp()
         consts.SQLITE = 'sqlite:///{}'.format(self.db_path)
-        from api import server
+
+        # 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:
+            self.app = None
+            return
 
         server.app.config['TESTING'] = True
         self.app = server.app.test_client()
@@ -24,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'}