56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
import unittest
|
|
|
|
from app import app
|
|
|
|
|
|
class BlogPostTestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.client = app.test_client()
|
|
self.sample_post = {"title": "Test Post", "content": "This is a test post"}
|
|
|
|
def test_create_post_success(self):
|
|
response = self.client.post("/api/posts", json=self.sample_post)
|
|
self.assertEqual(response.status_code, 201)
|
|
|
|
def test_create_post_missing_field(self):
|
|
response = self.client.post("/api/posts", json={"title": "Only title"})
|
|
self.assertEqual(response.status_code, 400)
|
|
|
|
def test_get_all_posts(self):
|
|
self.client.post("/api/posts", json=self.sample_post)
|
|
response = self.client.get("/api/posts")
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_get_single_post_success(self):
|
|
post_resp = self.client.post("/api/posts", json=self.sample_post)
|
|
post_id = post_resp.get_json()["id"]
|
|
response = self.client.get(f"/api/posts/{post_id}")
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_get_single_post_not_found(self):
|
|
response = self.client.get("/api/posts/999")
|
|
self.assertEqual(response.status_code, 404)
|
|
|
|
def test_update_post_success(self):
|
|
post_resp = self.client.post("/api/posts", json=self.sample_post)
|
|
post_id = post_resp.get_json()["id"]
|
|
response = self.client.put(f"/api/posts/{post_id}", json={"title": "Updated"})
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_update_post_not_found(self):
|
|
response = self.client.put("/api/posts/999", json={"title": "Nothing"})
|
|
self.assertEqual(response.status_code, 404)
|
|
|
|
def test_delete_post_success(self):
|
|
post_resp = self.client.post("/api/posts", json=self.sample_post)
|
|
post_id = post_resp.get_json()["id"]
|
|
response = self.client.delete(f"/api/posts/{post_id}")
|
|
self.assertEqual(response.status_code, 204)
|
|
|
|
def test_delete_post_not_found(self):
|
|
response = self.client.delete("/api/posts/999")
|
|
self.assertEqual(response.status_code, 404)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|