From: Stephan Müller Date: Thu, 15 Nov 2018 15:59:51 +0000 (+0100) Subject: mgr/dashboard/qa: Fix ECP creation test X-Git-Tag: v14.1.0~669^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=19b039c28ed8fb67632a1271b7ef8989aff237eb;p=ceph.git mgr/dashboard/qa: Fix ECP creation test The current solution fails on our CI-system as some outputs can have more values and some parameters like 'w' can vary in different environments. As this was only tested before in a vstart cluster environment it worked. Through this commit only the given attributes we know to be there, will be tested. Fixes: https://tracker.ceph.com/issues/37275 Signed-off-by: Stephan Müller --- diff --git a/qa/suites/rados/mgr/tasks/dashboard.yaml b/qa/suites/rados/mgr/tasks/dashboard.yaml index 6bb4a9a03b24..cda888a6aa83 100644 --- a/qa/suites/rados/mgr/tasks/dashboard.yaml +++ b/qa/suites/rados/mgr/tasks/dashboard.yaml @@ -44,3 +44,4 @@ tasks: - tasks.mgr.dashboard.test_role - tasks.mgr.dashboard.test_settings - tasks.mgr.dashboard.test_user + - tasks.mgr.dashboard.test_erasure_code_profile diff --git a/qa/tasks/mgr/dashboard/helper.py b/qa/tasks/mgr/dashboard/helper.py index 13fc8480b7a3..31fe13e742d6 100644 --- a/qa/tasks/mgr/dashboard/helper.py +++ b/qa/tasks/mgr/dashboard/helper.py @@ -319,10 +319,17 @@ class DashboardTestCase(MgrTestCase): def reset_session(cls): cls._session = requests.Session() + def assertSubset(self, data, biggerData): + for key, value in data.items(): + self.assertEqual(biggerData[key], value) + def assertJsonBody(self, data): body = self._resp.json() self.assertEqual(body, data) + def assertJsonSubset(self, data): + self.assertSubset(data, self._resp.json()) + def assertSchema(self, data, schema): try: return _validate_json(data, schema) diff --git a/qa/tasks/mgr/dashboard/test_erasure_code_profile.py b/qa/tasks/mgr/dashboard/test_erasure_code_profile.py index 2a9bd2e5a0a5..f5f1fd85ef6c 100644 --- a/qa/tasks/mgr/dashboard/test_erasure_code_profile.py +++ b/qa/tasks/mgr/dashboard/test_erasure_code_profile.py @@ -47,7 +47,7 @@ class ECPTest(DashboardTestCase): } if 'crush-failure-domain' in default[0]: default_ecp['crush-failure-domain'] = default[0]['crush-failure-domain'] - self.assertEqual(default[0], default_ecp) + self.assertSubset(default_ecp, default[0]) get_data = self._get('/api/erasure_code_profile/default') self.assertEqual(get_data, default[0]) @@ -58,7 +58,7 @@ class ECPTest(DashboardTestCase): self.assertStatus(201) self._get('/api/erasure_code_profile/ecp32') - self.assertJsonBody({ + self.assertJsonSubset({ 'crush-device-class': '', 'crush-failure-domain': 'osd', 'crush-root': 'default', @@ -68,7 +68,6 @@ class ECPTest(DashboardTestCase): 'name': 'ecp32', 'plugin': 'jerasure', 'technique': 'reed_sol_van', - 'w': '8' }) self.assertStatus(200)