From e89188adacacb72c11f557168f7ee48175c93837 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Wed, 23 Aug 2017 11:09:15 +0800 Subject: bugfix: malfunction of scenario equal check 1. bugfix equal check with[] will return list[false, true], and always True in next step check 2. in assert_res() leverage '==' will never assert even if they are not equal Change-Id: I683e3489d45b98b508f8ab8b6ef268ca9a1ebd5f Signed-off-by: SerenaFeng --- testapi/opnfv_testapi/resources/scenario_models.py | 30 ++++++++++++++++------ .../tests/unit/resources/scenario-c2.json | 4 +-- .../tests/unit/resources/test_scenario.py | 5 ++-- 3 files changed, 26 insertions(+), 13 deletions(-) (limited to 'testapi/opnfv_testapi') diff --git a/testapi/opnfv_testapi/resources/scenario_models.py b/testapi/opnfv_testapi/resources/scenario_models.py index 7d07707..ec262aa 100644 --- a/testapi/opnfv_testapi/resources/scenario_models.py +++ b/testapi/opnfv_testapi/resources/scenario_models.py @@ -16,6 +16,13 @@ class ScenarioTI(models.ModelBase): self.date = date self.status = status + def __eq__(self, other): + return (self.date == other.date and + self.status == other.status) + + def __ne__(self, other): + return not self.__eq__(other) + @swagger.model() class ScenarioScore(models.ModelBase): @@ -23,6 +30,13 @@ class ScenarioScore(models.ModelBase): self.date = date self.score = score + def __eq__(self, other): + return (self.date == other.date and + self.score == other.score) + + def __ne__(self, other): + return not self.__eq__(other) + @swagger.model() class ScenarioProject(models.ModelBase): @@ -50,10 +64,10 @@ class ScenarioProject(models.ModelBase): 'trust_indicators': ScenarioTI} def __eq__(self, other): - return [self.project == other.project and + return (self.project == other.project and self._customs_eq(other) and self._scores_eq(other) and - self._ti_eq(other)] + self._ti_eq(other)) def __ne__(self, other): return not self.__eq__(other) @@ -62,10 +76,10 @@ class ScenarioProject(models.ModelBase): return set(self.customs) == set(other.customs) def _scores_eq(self, other): - return set(self.scores) == set(other.scores) + return self.scores == other.scores def _ti_eq(self, other): - return set(self.trust_indicators) == set(other.trust_indicators) + return self.trust_indicators == other.trust_indicators @swagger.model() @@ -84,9 +98,9 @@ class ScenarioVersion(models.ModelBase): return {'projects': ScenarioProject} def __eq__(self, other): - return [self.version == other.version and + return (self.version == other.version and self.owner == other.owner and - self._projects_eq(other)] + self._projects_eq(other)) def __ne__(self, other): return not self.__eq__(other) @@ -116,7 +130,7 @@ class ScenarioInstaller(models.ModelBase): return {'versions': ScenarioVersion} def __eq__(self, other): - return [self.installer == other.installer and self._versions_eq(other)] + return (self.installer == other.installer and self._versions_eq(other)) def __ne__(self, other): return not self.__eq__(other) @@ -166,7 +180,7 @@ class Scenario(models.ModelBase): return not self.__eq__(other) def __eq__(self, other): - return [self.name == other.name and self._installers_eq(other)] + return (self.name == other.name and self._installers_eq(other)) def _installers_eq(self, other): for s_install in self.installers: diff --git a/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json b/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json index b6a3b83..980051c 100644 --- a/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json +++ b/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json @@ -8,7 +8,7 @@ [ { "owner": "Lucky", - "version": "colorado", + "version": "danube", "projects": [ { @@ -29,7 +29,7 @@ "scores": [ { "date": "2017-01-08 22:46:44", - "score": "0" + "score": "0/1" } ], "trust_indicators": [ diff --git a/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py b/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py index 466caaf..f9bb58c 100644 --- a/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py +++ b/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py @@ -47,8 +47,7 @@ class TestScenarioBase(base.TestBase): req = self.req_d self.assertIsNotNone(scenario._id) self.assertIsNotNone(scenario.creation_date) - - scenario == models.Scenario.from_dict(req) + self.assertEqual(scenario, models.Scenario.from_dict(req)) @staticmethod def _set_query(*args): @@ -298,7 +297,7 @@ class TestScenarioUpdate(TestScenarioBase): @update_partial('_update', '_success') def test_changeOwner(self, scenario): new_owner = 'new_owner' - scenario['installers'][0]['versions'][0]['owner'] = 'www' + scenario['installers'][0]['versions'][0]['owner'] = new_owner return new_owner, scenario def _add(self, update_req, new_scenario): -- cgit 1.2.3-korg