mirror of https://github.com/snachodog/mybuddy.git
Add api tests
This commit is contained in:
parent
5f23eecb84
commit
7d8ead594c
53
api/tests.py
53
api/tests.py
|
@ -552,3 +552,56 @@ class WeightAPITestCase(TestBase.BabyBuddyAPITestCaseBase):
|
||||||
)
|
)
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
self.assertEqual(response.data, entry)
|
self.assertEqual(response.data, entry)
|
||||||
|
|
||||||
|
|
||||||
|
class TagsAPITestCase(TestBase.BabyBuddyAPITestCaseBase):
|
||||||
|
endpoint = reverse("api:tag-list")
|
||||||
|
model = models.Tag
|
||||||
|
|
||||||
|
def test_get(self):
|
||||||
|
response = self.client.get(self.endpoint)
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
self.assertDictEqual(
|
||||||
|
dict(response.data["results"][0]),
|
||||||
|
{
|
||||||
|
"name": "a name",
|
||||||
|
"slug": "a-name",
|
||||||
|
"color": "#FF0000",
|
||||||
|
"last_used": "2017-11-18T11:00:00-05:00",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_post(self):
|
||||||
|
data = {"name": "new tag", "color": "#123456"}
|
||||||
|
response = self.client.post(self.endpoint, data, format="json")
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
|
|
||||||
|
response = self.client.get(self.endpoint)
|
||||||
|
results = response.json()["results"]
|
||||||
|
results_by_name = {r["name"]: r for r in results}
|
||||||
|
|
||||||
|
tag_data = results_by_name["new tag"]
|
||||||
|
self.assertDictContainsSubset(data, tag_data)
|
||||||
|
self.assertEqual(tag_data["slug"], "new-tag")
|
||||||
|
self.assertTrue(tag_data["last_used"])
|
||||||
|
|
||||||
|
def test_patch(self):
|
||||||
|
endpoint = f"{self.endpoint}a-name/"
|
||||||
|
|
||||||
|
modified_data = {
|
||||||
|
"name": "A different name",
|
||||||
|
"color": "#567890",
|
||||||
|
}
|
||||||
|
response = self.client.patch(
|
||||||
|
endpoint,
|
||||||
|
modified_data,
|
||||||
|
)
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
self.assertDictContainsSubset(modified_data, response.data)
|
||||||
|
|
||||||
|
def test_delete(self):
|
||||||
|
endpoint = f"{self.endpoint}a-name/"
|
||||||
|
response = self.client.delete(endpoint)
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||||
|
response = self.client.delete(endpoint)
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
|
||||||
|
|
|
@ -462,5 +462,16 @@
|
||||||
"date": "2017-11-18",
|
"date": "2017-11-18",
|
||||||
"notes": "before feed"
|
"notes": "before feed"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "core.tag",
|
||||||
|
"pk": 1,
|
||||||
|
"fields":
|
||||||
|
{
|
||||||
|
"name": "a name",
|
||||||
|
"slug": "a-name",
|
||||||
|
"color": "#FF0000",
|
||||||
|
"last_used": "2017-11-18T16:00:00Z"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -106,8 +106,7 @@ def random_color():
|
||||||
|
|
||||||
class Tag(TagBase):
|
class Tag(TagBase):
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _("Tag")
|
verbose_name = _("Tags")
|
||||||
verbose_name_plural = _("Tags")
|
|
||||||
|
|
||||||
color = models.CharField(
|
color = models.CharField(
|
||||||
verbose_name=_("Color"),
|
verbose_name=_("Color"),
|
||||||
|
|
Loading…
Reference in New Issue