def test_partial_update_label(self): label = factories.LabelFactory() self.assertNotEqual("updated", label.name) request = self.client.patch("/api/v1/labels/%s" % label.id, {"name": "updated"}) self.assertEqual(200, request.status_code) label_updated = models.Label.objects.get(id=label.id) self.assertEqual("updated", label_updated.name)
def test_get_label_order(self): first_label = factories.LabelFactory() second_label = factories.LabelFactory() # Ensure we have two objects request = self.client.get("/api/v1/labels") self.assertEqual(2, len(request.data["results"])) order_fields = ["id", "created", "updated"] # Ascending order for field in order_fields: request = self.client.get("/api/v1/labels?order=%s" % field) self.assertEqual(request.data["results"][0]["id"], first_label.id) # Descending order for field in order_fields: request = self.client.get("/api/v1/labels?order=-%s" % field) self.assertEqual(request.data["results"][0]["id"], second_label.id)
def test_get_label_by_date(self): label = factories.LabelFactory() past = datetime.datetime.now() - datetime.timedelta(hours=12) negative_date_fields = ["created_before", "updated_before"] positive_date_fields = ["created_after", "updated_after"] # Expect no label when searching before it was created for field in negative_date_fields: request = self.client.get("/api/v1/labels?%s=%s" % (field, past.isoformat())) self.assertEqual(request.data["count"], 0) # Expect a label when searching after it was created for field in positive_date_fields: request = self.client.get("/api/v1/labels?%s=%s" % (field, past.isoformat())) self.assertEqual(request.data["count"], 1) self.assertEqual(request.data["results"][0]["id"], label.id)
def test_delete_label(self): label = factories.LabelFactory() self.assertEqual(1, models.Label.objects.all().count()) request = self.client.delete("/api/v1/labels/%s" % label.id) self.assertEqual(204, request.status_code) self.assertEqual(0, models.Label.objects.all().count())
def test_get_label(self): label = factories.LabelFactory() request = self.client.get("/api/v1/labels/%s" % label.id) self.assertEqual(label.name, request.data["name"])
def test_get_labels(self): label = factories.LabelFactory() request = self.client.get("/api/v1/labels") self.assertEqual(1, len(request.data["results"])) self.assertEqual(label.name, request.data["results"][0]["name"])
def test_label_factory(self): label = factories.LabelFactory(name="factory") self.assertEqual(label.name, "factory")
def test_unique_label_names(self): # Create a first label factories.LabelFactory(name="label") with self.assertRaises(IntegrityError): # Creating a second label with the same name should yield an exception factories.LabelFactory(name="label")