class TestExternalRelationshipNew(TestCase): """Integration test suite for External Relationship.""" # pylint: disable=invalid-name def setUp(self): """Init API helper""" super(TestExternalRelationshipNew, self).setUp() self.ext_api = ExternalApiClient() def test_ext_app_delete_normal_relationship(self): """External app can't delete normal relationships""" with factories.single_commit(): issue = factories.IssueFactory() objective = factories.ObjectiveFactory() relationship = factories.RelationshipFactory(source=issue, destination=objective, is_external=False) relationship_id = relationship.id ext_api = ExternalApiClient(use_ggrcq_service_account=True) resp = ext_api.delete("relationship", relationship_id) self.assertStatus(resp, 400) def test_sync_service_delete_normal_relationship(self): """Sync service can delete normal relationships via unmap endpoint""" with factories.single_commit(): issue = factories.IssueFactory() objective = factories.ObjectiveFactory() relationship = factories.RelationshipFactory(source=issue, destination=objective, is_external=False) relationship_id = relationship.id resp = self.ext_api.unmap(issue, objective) self.assert200(resp) rel = all_models.Relationship.query.get(relationship_id) self.assertIsNone(rel)
class TestExternalRelationshipNew(TestCase): """Integration test suite for External Relationship.""" # pylint: disable=invalid-name def setUp(self): """Init API helper""" super(TestExternalRelationshipNew, self).setUp() self.ext_api = ExternalApiClient() def test_ext_app_delete_normal_relationship(self): """External app can't delete normal relationships""" with factories.single_commit(): issue = factories.IssueFactory() objective = factories.ObjectiveFactory() relationship = factories.RelationshipFactory(source=issue, destination=objective, is_external=False) relationship_id = relationship.id ext_api = ExternalApiClient(use_ggrcq_service_account=True) resp = ext_api.delete("relationship", relationship_id) self.assertStatus(resp, 400) def test_ext_app_recreate_normal_relationship(self): """If ext app create already created relationship it has to be with is_external=False""" with factories.single_commit(): market1 = factories.MarketFactory() market2 = factories.MarketFactory() relationship = factories.RelationshipFactory( source=market1, destination=market2, is_external=False, ) relationship_id = relationship.id ext_api = ExternalApiClient(use_ggrcq_service_account=True) response = ext_api.post(all_models.Relationship, data={ "relationship": { "source": { "id": market1.id, "type": market1.type }, "destination": { "id": market2.id, "type": market2.type }, "is_external": True, "context": None, }, }) self.assert200(response) relationship = all_models.Relationship.query.get(relationship_id) self.assertFalse(relationship.is_external) def test_sync_service_delete_normal_relationship(self): """Sync service can delete normal relationships via unmap endpoint""" with factories.single_commit(): issue = factories.IssueFactory() objective = factories.ObjectiveFactory() relationship = factories.RelationshipFactory(source=issue, destination=objective, is_external=False) relationship_id = relationship.id resp = self.ext_api.unmap(issue, objective) self.assert200(resp) rel = all_models.Relationship.query.get(relationship_id) self.assertIsNone(rel)