]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: home controller unit test 30910/head
authorRicardo Dias <rdias@suse.com>
Tue, 15 Oct 2019 12:12:34 +0000 (13:12 +0100)
committerRicardo Dias <rdias@suse.com>
Thu, 17 Oct 2019 08:58:25 +0000 (09:58 +0100)
Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit 87a0395c717b5bf232b2c669fd7d1d7377710281)

src/pybind/mgr/dashboard/__init__.py
src/pybind/mgr/dashboard/tests/__init__.py
src/pybind/mgr/dashboard/tests/test_home.py [new file with mode: 0644]

index 4322245b861d8323ea3f2b065cd2682de600373e..798ed37e3ab6c5b8350700fae9b1e22f9f72e70b 100644 (file)
@@ -51,4 +51,4 @@ else:
     sys.modules['ceph_module'] = mock.Mock()
 
     mgr = mock.Mock()
-    mgr.get_frontend_path.side_effect = lambda: "./frontend/dist"
+    mgr.get_frontend_path.side_effect = lambda: os.path.abspath("./frontend/dist")
index ee2c4912d38a942f086dc454b0e3879acb4e842c..913d5bb5b79c3f89738e2fcfefb8a7279792838e 100644 (file)
@@ -108,7 +108,7 @@ class ControllerTestCase(helper.CPWebCase):
         })
         super(ControllerTestCase, self).__init__(*args, **kwargs)
 
-    def _request(self, url, method, data=None):
+    def _request(self, url, method, data=None, headers=None):
         if not data:
             b = None
             h = None
@@ -116,10 +116,12 @@ class ControllerTestCase(helper.CPWebCase):
             b = json.dumps(data)
             h = [('Content-Type', 'application/json'),
                  ('Content-Length', str(len(b)))]
+        if headers:
+            h = headers
         self.getPage(url, method=method, body=b, headers=h)
 
-    def _get(self, url):
-        self._request(url, 'GET')
+    def _get(self, url, headers=None):
+        self._request(url, 'GET', headers=headers)
 
     def _post(self, url, data=None):
         self._request(url, 'POST', data)
diff --git a/src/pybind/mgr/dashboard/tests/test_home.py b/src/pybind/mgr/dashboard/tests/test_home.py
new file mode 100644 (file)
index 0000000..3417625
--- /dev/null
@@ -0,0 +1,33 @@
+from __future__ import absolute_import
+
+import logging
+
+from . import ControllerTestCase
+from ..controllers.home import HomeController
+
+
+logger = logging.getLogger()
+
+
+class HomeTest(ControllerTestCase):
+    @classmethod
+    def setup_server(cls):
+        cls.setup_controllers([HomeController])
+
+    def test_home_default_lang(self):
+        self._get('/')
+        self.assertStatus(200)
+        logger.info(self.body)
+        self.assertIn('<html lang="en">', self.body.decode('utf-8'))
+
+    def test_home_en_us(self):
+        self._get('/', headers=[('Accept-Language', 'en-US')])
+        self.assertStatus(200)
+        logger.info(self.body)
+        self.assertIn('<html lang="en">', self.body.decode('utf-8'))
+
+    def test_home_non_supported_lang(self):
+        self._get('/', headers=[('Accept-Language', 'NO-NO')])
+        self.assertStatus(200)
+        logger.info(self.body)
+        self.assertIn('<html lang="en">', self.body.decode('utf-8'))