Przeglądaj źródła

refactored project creation and deletion tests. added creation tests without name and description

Dimitri Korsch 3 lat temu
rodzic
commit
e6ec78a237
1 zmienionych plików z 63 dodań i 43 usunięć
  1. 63 43
      tests/client/project_tests.py

+ 63 - 43
tests/client/project_tests.py

@@ -6,8 +6,7 @@ from pycs.database.Label import Label
 
 from tests.base import BaseTestCase
 
-
-class ProjectCreationTests(BaseTestCase):
+class _BaseProjectTests(BaseTestCase):
 
     def setupModels(self):
 
@@ -22,17 +21,52 @@ class ProjectCreationTests(BaseTestCase):
 
         self.model = model
 
-    def test_project_creation(self):
+class ProjectCreationTests(_BaseProjectTests):
+
+    def setUp(self):
+        super().setUp()
+        self.url = url_for("create_project")
+
+
+    def test_project_creation_without_name(self):
+        self.assertEqual(0, Project.query.count())
+
+        self.post(self.url, json=dict(
+                # name="Some Project",
+                description="Some description",
+                model=self.model.id,
+                label=None,
+                external=None,
+            ),
+            status_code=400,
+        )
+
+        self.assertEqual(0, Project.query.count())
+
+    def test_project_creation_without_description(self):
+        self.assertEqual(0, Project.query.count())
+
+        self.post(self.url, json=dict(
+                name="Some Project",
+                # description="Some description",
+                model=self.model.id,
+                label=None,
+                external=None,
+            ),
+            status_code=400,
+        )
 
         self.assertEqual(0, Project.query.count())
-        url = url_for("create_project")
-
-        self.post(url, json=dict(
-            name="Some Project",
-            description="Some description",
-            model=self.model.id,
-            label=None,
-            external=None,
+
+    def test_project_creation(self):
+        self.assertEqual(0, Project.query.count())
+
+        self.post(self.url, json=dict(
+                name="Some Project",
+                description="Some description",
+                model=self.model.id,
+                label=None,
+                external=None,
             )
         )
         self.assertEqual(1, Project.query.count())
@@ -43,10 +77,11 @@ class ProjectCreationTests(BaseTestCase):
         self.assertIsNotNone(project.model)
         self.assertIsNone(project.label_provider)
 
-    def test_project_deletion(self):
+class ProjectDeletionTests(_BaseProjectTests):
 
-        self.assertEqual(0, Project.query.count())
-        project = Project.new(
+    def setupModels(self):
+        super().setupModels()
+        self.project = Project.new(
             name="test_project",
             description="Project for a test case",
             model=self.model,
@@ -54,55 +89,40 @@ class ProjectCreationTests(BaseTestCase):
             external_data=False,
             data_folder="project_folder/data",)
 
+    @property
+    def url(self):
+        return url_for("remove_project",
+                       project_id=self.project.id)
+
+
+    def test_project_deletion(self):
+
         self.assertEqual(1, Project.query.count())
 
-        url = url_for("remove_project", project_id=project.id)
-        self.post(url, json=dict(remove=True))
+        self.post(self.url, json=dict(remove=True))
         self.assertEqual(0, Project.query.count())
 
     def test_project_deletion_without_flag(self):
 
-        self.assertEqual(0, Project.query.count())
-        project = Project.new(
-            name="test_project",
-            description="Project for a test case",
-            model=self.model,
-            root_folder="project_folder",
-            external_data=False,
-            data_folder="project_folder/data",)
-
         self.assertEqual(1, Project.query.count())
 
-        url = url_for("remove_project", project_id=project.id)
-        self.post(url, json=dict(), status_code=400)
+        self.post(self.url, json=dict(), status_code=400)
         self.assertEqual(1, Project.query.count())
 
-        url = url_for("remove_project", project_id=project.id)
-        self.post(url, json=dict(remove=False), status_code=400)
+        self.post(self.url, json=dict(remove=False), status_code=400)
         self.assertEqual(1, Project.query.count())
 
     def test_project_deletion_with_labels(self):
 
-        self.assertEqual(0, Project.query.count())
-        self.assertEqual(0, Label.query.count())
-
-        project = Project.new(
-            name="test_project",
-            description="Project for a test case",
-            model=self.model,
-            root_folder="project_folder",
-            external_data=False,
-            data_folder="project_folder/data",)
-
         self.assertEqual(1, Project.query.count())
+        self.assertEqual(0, Label.query.count())
 
         for i in range(1, 11):
-            project.create_label(name=f"Label_{i}")
+            self.project.create_label(name=f"Label_{i}")
 
         self.assertEqual(10, Label.query.count())
 
-        url = url_for("remove_project", project_id=project.id)
-        self.post(url, json=dict(remove=True))
+        self.post(self.url, json=dict(remove=True))
 
         self.assertEqual(0, Project.query.count())
         self.assertEqual(0, Label.query.count())