def test_same_issue(self): """Test if issue could not be added more than once""" issue_type = models.ConcernCause.Config issue.create_issue(self.cluster, issue_type) issue.create_issue(self.cluster, issue_type) # create twice for node in self.tree.get_directly_affected(self.tree.built_from): concerns = list(node.value.concerns.all()) self.assertEqual(len(concerns), 1) # exist only one
def test_single_issue(self): issue_type = models.ConcernCause.Config issue.create_issue(self.cluster, issue_type) issue.remove_issue(self.cluster, issue_type) self.assertIsNone(self.cluster.get_own_issue(issue_type)) for node in self.tree.get_directly_affected(self.tree.built_from): concerns = list(node.value.concerns.all()) self.assertEqual(len(concerns), 0)
def test_new_issue(self): """Test if new issue is propagated to all affected objects""" issue_type = models.ConcernCause.Config issue.create_issue(self.cluster, issue_type) own_issue = self.cluster.get_own_issue(issue_type) self.assertIsNotNone(own_issue) for node in self.tree.get_directly_affected(self.tree.built_from): concerns = list(node.value.concerns.all()) self.assertEqual(len(concerns), 1) self.assertEqual(own_issue.pk, concerns[0].pk)
def test_inherit_on_creation(self): """Test if new object in hierarchy inherits existing issues""" issue_type = models.ConcernCause.Config issue.create_issue(self.cluster, issue_type) cluster_issue = self.cluster.get_own_issue(issue_type) new_service = utils.gen_service(self.cluster, self.cluster.prototype.bundle) self.assertListEqual(list(new_service.concerns.all()), []) issue.update_hierarchy_issues(new_service) new_service_issues = [i.id for i in new_service.concerns.all()] self.assertIn(cluster_issue.id, new_service_issues)
def test_few_issues(self): """Test if object could have more than one issue""" issue_type_1 = models.ConcernCause.Config issue_type_2 = models.ConcernCause.Import issue.create_issue(self.cluster, issue_type_1) issue.create_issue(self.cluster, issue_type_2) own_issue_1 = self.cluster.get_own_issue(issue_type_1) self.assertIsNotNone(own_issue_1) own_issue_2 = self.cluster.get_own_issue(issue_type_2) self.assertIsNotNone(own_issue_2) self.assertNotEqual(own_issue_1.pk, own_issue_2.pk) for node in self.tree.get_directly_affected(self.tree.built_from): concerns = {c.pk for c in node.value.concerns.all()} self.assertEqual(len(concerns), 2) self.assertSetEqual({own_issue_1.pk, own_issue_2.pk}, concerns)
def test_few_issues(self): issue_type_1 = models.ConcernCause.Config issue_type_2 = models.ConcernCause.Import issue.create_issue(self.cluster, issue_type_1) issue.create_issue(self.cluster, issue_type_2) issue.remove_issue(self.cluster, issue_type_1) own_issue_1 = self.cluster.get_own_issue(issue_type_1) self.assertIsNone(own_issue_1) own_issue_2 = self.cluster.get_own_issue(issue_type_2) self.assertIsNotNone(own_issue_2) for node in self.tree.get_directly_affected(self.tree.built_from): concerns = [c.pk for c in node.value.concerns.all()] self.assertEqual(len(concerns), 1) self.assertEqual(concerns[0], own_issue_2.pk)
def test_issue(self): obj = utils.gen_cluster() issue.create_issue(obj, ConcernCause.Config) upgrade = self.cook_upgrade() self.check_upgrade(obj, upgrade, False)