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()