From a2e1a13dad2f172bb8fe51519d8ca93b54bd7559 Mon Sep 17 00:00:00 2001 From: Kenzo-Hugo Hillion <hillion.kenzo@posteo.net> Date: Mon, 6 Dec 2021 19:51:47 +0100 Subject: [PATCH] improve deletion of test entry --- .../app/tests/api/endpoints/base_api_test.py | 5 ++ .../app/tests/api/endpoints/test_catalogs.py | 36 +++++++------- backend/app/tests/api/endpoints/test_keggs.py | 34 +++++++------- .../tests/api/endpoints/test_ncbi_taxonomy.py | 47 +++++++++---------- 4 files changed, 63 insertions(+), 59 deletions(-) diff --git a/backend/app/tests/api/endpoints/base_api_test.py b/backend/app/tests/api/endpoints/base_api_test.py index 322fdd3..f97a9a9 100644 --- a/backend/app/tests/api/endpoints/base_api_test.py +++ b/backend/app/tests/api/endpoints/base_api_test.py @@ -42,3 +42,8 @@ class BaseApiTests(unittest.TestCase): @classmethod def tearDownClass(cls) -> None: clear_di() + + def _delete_entry(self, entry): + self.session.rollback() + self.session.delete(entry) + self.session.commit() diff --git a/backend/app/tests/api/endpoints/test_catalogs.py b/backend/app/tests/api/endpoints/test_catalogs.py index a1aa79f..51279c2 100644 --- a/backend/app/tests/api/endpoints/test_catalogs.py +++ b/backend/app/tests/api/endpoints/test_catalogs.py @@ -42,15 +42,17 @@ class TestCatalogs(BaseApiTests): cat_name = "created_catalog" json_input = {"name": cat_name} expected_data = {"name": cat_name, "doi": None} - # When - response = self.client.post("/api/catalogs/", json=json_input) - # Then - self.assertEqual(response.status_code, 200) - self.assertDictEqual(response.json(), expected_data) - # Finally delete item - cat = self.session.exec(select(Catalog).where(Catalog.name == cat_name)).one() - self.session.delete(cat) - self.session.commit() + try: + # When + response = self.client.post("/api/catalogs/", json=json_input) + # Then + self.assertEqual(response.status_code, 200) + self.assertDictEqual(response.json(), expected_data) + finally: + cat = self.session.exec( + select(Catalog).where(Catalog.name == cat_name) + ).one() + self._delete_entry(cat) def test_create_existing_catalog(self): # Given @@ -95,11 +97,11 @@ class TestCatalogs(BaseApiTests): self.session.commit() json_input = {"name": name_to_update, "doi": "12345"} expected_data = json_input - # When - response = self.client.put(f"/api/catalogs/", json=json_input) - # Then - self.assertEqual(response.status_code, 200) - self.assertDictEqual(response.json(), expected_data) - # Finally - self.session.delete(catalog_to_update) - self.session.commit() + try: + # When + response = self.client.put(f"/api/catalogs/", json=json_input) + # Then + self.assertEqual(response.status_code, 200) + self.assertDictEqual(response.json(), expected_data) + finally: + self._delete_entry(catalog_to_update) diff --git a/backend/app/tests/api/endpoints/test_keggs.py b/backend/app/tests/api/endpoints/test_keggs.py index de41faf..4a9b18b 100644 --- a/backend/app/tests/api/endpoints/test_keggs.py +++ b/backend/app/tests/api/endpoints/test_keggs.py @@ -43,15 +43,15 @@ class TestKeggs(BaseApiTests): kegg_name = "created_kegg" json_input = {"kegg_id": kegg_id, "name": kegg_name} expected_data = {"kegg_id": kegg_id, "name": kegg_name} - # When - response = self.client.post("/api/keggs/", json=json_input) - # Then - self.assertEqual(response.status_code, 200) - self.assertDictEqual(response.json(), expected_data) - # Finally delete item - kegg = self.session.exec(select(Kegg).where(Kegg.kegg_id == kegg_id)).one() - self.session.delete(kegg) - self.session.commit() + try: + # When + response = self.client.post("/api/keggs/", json=json_input) + # Then + self.assertEqual(response.status_code, 200) + self.assertDictEqual(response.json(), expected_data) + finally: + kegg = self.session.exec(select(Kegg).where(Kegg.kegg_id == kegg_id)).one() + self._delete_entry(kegg) def test_create_existing_kegg(self): # Given @@ -100,11 +100,11 @@ class TestKeggs(BaseApiTests): self.session.commit() json_input = {"kegg_id": kegg_id, "name": new_name} expected_data = json_input - # When - response = self.client.put(f"/api/keggs/", json=json_input) - # Then - self.assertEqual(response.status_code, 200) - self.assertDictEqual(response.json(), expected_data) - # Finally - self.session.delete(kegg_to_update) - self.session.commit() + try: + # When + response = self.client.put(f"/api/keggs/", json=json_input) + # Then + self.assertEqual(response.status_code, 200) + self.assertDictEqual(response.json(), expected_data) + finally: + self._delete_entry(kegg_to_update) diff --git a/backend/app/tests/api/endpoints/test_ncbi_taxonomy.py b/backend/app/tests/api/endpoints/test_ncbi_taxonomy.py index 8bc7356..a0e7377 100644 --- a/backend/app/tests/api/endpoints/test_ncbi_taxonomy.py +++ b/backend/app/tests/api/endpoints/test_ncbi_taxonomy.py @@ -58,17 +58,17 @@ class TestNcbiTaxonomys(BaseApiTests): "name": ncbi_taxonomy_name, "rank": rank_created, } - # When - response = self.client.post("/api/ncbi_taxonomy/", json=json_input) - # Then - self.assertEqual(response.status_code, 200) - self.assertDictEqual(response.json(), expected_data) - # Finally delete item - ncbi_tax = self.session.exec( - select(NcbiTaxonomy).where(NcbiTaxonomy.tax_id == tax_id) - ).one() - self.session.delete(ncbi_tax) - self.session.commit() + try: + # When + response = self.client.post("/api/ncbi_taxonomy/", json=json_input) + # Then + self.assertEqual(response.status_code, 200) + self.assertDictEqual(response.json(), expected_data) + finally: + ncbi_tax = self.session.exec( + select(NcbiTaxonomy).where(NcbiTaxonomy.tax_id == tax_id) + ).one() + self._delete_entry(ncbi_tax) def test_create_existing_ncbi_taxonomy(self): # Given @@ -124,16 +124,16 @@ class TestNcbiTaxonomys(BaseApiTests): self.session.commit() json_input = {"tax_id": tax_id, "name": new_name} expected_data = {"tax_id": tax_id, "name": new_name, "rank": rank} - # When - response = self.client.put( - f"/api/ncbi_taxonomy/?exclude_none=true", json=json_input - ) - # Then - self.assertEqual(response.status_code, 200) - self.assertDictEqual(response.json(), expected_data) - # Finally - self.session.delete(ncbi_taxonomy_to_update) - self.session.commit() + try: + # When + response = self.client.put( + f"/api/ncbi_taxonomy/?exclude_none=true", json=json_input + ) + # Then + self.assertEqual(response.status_code, 200) + self.assertDictEqual(response.json(), expected_data) + finally: + self._delete_entry(ncbi_taxonomy_to_update) def test_update_ncbi_taxonomy_no_rank_exclude_none_false(self): # Given @@ -154,8 +154,5 @@ class TestNcbiTaxonomys(BaseApiTests): f"/api/ncbi_taxonomy/?exclude_none=false", json=json_input ) self.assertEqual(response.status_code, 422) - # Finally finally: - self.session.rollback() - self.session.delete(ncbi_taxonomy_to_update) - self.session.commit() + self._delete_entry(ncbi_taxonomy_to_update) -- GitLab