|
@@ -87,6 +87,54 @@ class LabelCreationTests(_BaseLabelTests):
|
|
self.assertEqual(last_label.reference, ref)
|
|
self.assertEqual(last_label.reference, ref)
|
|
|
|
|
|
|
|
|
|
|
|
+class LabelListTests(_BaseLabelTests):
|
|
|
|
+
|
|
|
|
+ def setupModels(self):
|
|
|
|
+ super().setupModels()
|
|
|
|
+
|
|
|
|
+ for i in range(1, 11):
|
|
|
|
+ parent, is_new = self.project.create_label(name=f"Label{i}", reference=f"label{i}")
|
|
|
|
+ self.assertTrue(is_new)
|
|
|
|
+
|
|
|
|
+ for j in range(1, 4):
|
|
|
|
+ label, is_new = self.project.create_label(
|
|
|
|
+ name=f"Label{i}_{j}", reference=f"label{i}_{j}",
|
|
|
|
+ parent=parent)
|
|
|
|
+ self.assertTrue(is_new)
|
|
|
|
+
|
|
|
|
+ def test_list_labels(self):
|
|
|
|
+ self.get(url_for("list_labels", project_id=4242), status_code=404)
|
|
|
|
+
|
|
|
|
+ response = self.get(url_for("list_labels", project_id=self.project.id))
|
|
|
|
+ self.assertTrue(response.is_json)
|
|
|
|
+ content = response.json
|
|
|
|
+
|
|
|
|
+ labels = {l.id: l for l in self.project.labels.all()}
|
|
|
|
+
|
|
|
|
+ self.assertEqual(len(labels), len(content))
|
|
|
|
+
|
|
|
|
+ for entry in content:
|
|
|
|
+ label = labels[entry["id"]]
|
|
|
|
+ self.assertDictEqual(label.serialize(), entry)
|
|
|
|
+
|
|
|
|
+ def test_list_label_tree(self):
|
|
|
|
+ self.get(url_for("list_label_tree", project_id=4242), status_code=404)
|
|
|
|
+
|
|
|
|
+ response = self.get(url_for("list_label_tree", project_id=self.project.id))
|
|
|
|
+ self.assertTrue(response.is_json)
|
|
|
|
+ content = response.json
|
|
|
|
+
|
|
|
|
+ root_labels = {l.id: l for l in Label.query.filter(
|
|
|
|
+ Label.project_id==self.project.id, Label.parent_id==None).all()}
|
|
|
|
+
|
|
|
|
+ self.assertEqual(len(root_labels), len(content))
|
|
|
|
+
|
|
|
|
+ for entry in content:
|
|
|
|
+ label = root_labels[entry["id"]]
|
|
|
|
+ self.assertDictEqual(label.serialize(), entry)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
class LabelRemovalTests(_BaseLabelTests):
|
|
class LabelRemovalTests(_BaseLabelTests):
|
|
|
|
|
|
def url(self, label_id):
|
|
def url(self, label_id):
|