|
1 | 1 | from datetime import timedelta |
2 | | -from io import BytesIO |
3 | 2 | from unittest.mock import patch |
4 | 3 |
|
5 | 4 | from django.conf import settings |
6 | 5 | from django.contrib.auth.models import User |
7 | 6 | from django.urls import reverse |
8 | 7 | from django.utils import timezone |
9 | | -from PIL import Image |
10 | 8 |
|
11 | 9 | from project.newsletter.models import Post, Subscription, SubscriptionNotification |
12 | 10 | from project.newsletter.test import DataTestCase |
@@ -208,78 +206,6 @@ def test_pagination(self): |
208 | 206 | ) |
209 | 207 |
|
210 | 208 |
|
211 | | -class TestUpdatePost(DataTestCase): |
212 | | - def test_staff_user_required(self): |
213 | | - user = User.objects.create_user(username="basic") |
214 | | - self.client.force_login(user) |
215 | | - url = reverse( |
216 | | - "newsletter:update_post", kwargs={"slug": self.data.private_post.slug} |
217 | | - ) |
218 | | - response = self.client.post(url) |
219 | | - self.assertRedirects(response, f"{settings.LOGIN_URL}?next={url}") |
220 | | - |
221 | | - def test_get(self): |
222 | | - self.client.force_login(self.user) |
223 | | - url = reverse( |
224 | | - "newsletter:update_post", kwargs={"slug": self.data.private_post.slug} |
225 | | - ) |
226 | | - response = self.client.get(url) |
227 | | - self.assertTemplateUsed(response, "staff/post_form.html") |
228 | | - |
229 | | - def test_invalid(self): |
230 | | - self.client.force_login(self.user) |
231 | | - url = reverse( |
232 | | - "newsletter:update_post", kwargs={"slug": self.data.private_post.slug} |
233 | | - ) |
234 | | - response = self.client.post(url, data={}) |
235 | | - self.assertTemplateUsed(response, "staff/post_form.html") |
236 | | - self.assertInHTML( |
237 | | - "<li>This field is required.</li>", |
238 | | - response.content.decode("utf-8"), |
239 | | - ) |
240 | | - |
241 | | - def test_update(self): |
242 | | - post = Post.objects.create( |
243 | | - author=self.data.author, |
244 | | - title="Test Update", |
245 | | - slug="test-update", |
246 | | - content="c", |
247 | | - ) |
248 | | - self.client.force_login(self.user) |
249 | | - |
250 | | - img = BytesIO() |
251 | | - Image.new("RGB", (1, 1), "#FF0000").save(img, format="PNG") |
252 | | - img.name = "myimage.png" |
253 | | - img.seek(0) |
254 | | - data = { |
255 | | - "title": "Test Update2", |
256 | | - "slug": "test-update2", |
257 | | - "categories": [self.data.career.id], |
258 | | - "content": "content", |
259 | | - "summary": "summary", |
260 | | - "is_public": False, |
261 | | - "is_published": True, |
262 | | - "open_graph_description": "description", |
263 | | - "open_graph_image": img, |
264 | | - } |
265 | | - response = self.client.post( |
266 | | - reverse("newsletter:update_post", kwargs={"slug": post.slug}), data=data |
267 | | - ) |
268 | | - self.assertRedirects( |
269 | | - response, reverse("newsletter:update_post", kwargs={"slug": "test-update2"}) |
270 | | - ) |
271 | | - post.refresh_from_db() |
272 | | - self.assertEqual(post.slug, "test-update2") |
273 | | - self.assertEqual(post.title, "Test Update2") |
274 | | - self.assertEqual(post.categories.get(), self.data.career) |
275 | | - self.assertEqual(post.content, "content") |
276 | | - self.assertEqual(post.summary, "summary") |
277 | | - self.assertEqual(post.open_graph_description, "description") |
278 | | - self.assertFalse(post.is_public) |
279 | | - self.assertTrue(post.is_published) |
280 | | - self.assertIsNotNone(post.open_graph_image.file) |
281 | | - |
282 | | - |
283 | 209 | class TestTogglePostPrivacy(DataTestCase): |
284 | 210 | def test_staff_user_required(self): |
285 | 211 | user = User.objects.create_user(username="basic") |
@@ -314,74 +240,12 @@ def test_toggle(self): |
314 | 240 | self.assertFalse(post.is_public) |
315 | 241 |
|
316 | 242 | # Toggle the property back and verify the redirect to next. |
317 | | - response = self.client.post( |
318 | | - url |
319 | | - + f"?next={reverse('newsletter:update_post', kwargs={'slug': post.slug})}" |
320 | | - ) |
321 | | - self.assertRedirects( |
322 | | - response, reverse("newsletter:update_post", kwargs={"slug": post.slug}) |
323 | | - ) |
| 243 | + response = self.client.post(url + f"?next={reverse('newsletter:landing')}") |
| 244 | + self.assertRedirects(response, reverse("newsletter:landing")) |
324 | 245 | post.refresh_from_db() |
325 | 246 | self.assertTrue(post.is_public) |
326 | 247 |
|
327 | 248 |
|
328 | | -class TestCreatePost(DataTestCase): |
329 | | - def test_staff_user_required(self): |
330 | | - user = User.objects.create_user(username="basic") |
331 | | - self.client.force_login(user) |
332 | | - url = reverse("newsletter:create_post") |
333 | | - response = self.client.post(url) |
334 | | - self.assertRedirects(response, f"{settings.LOGIN_URL}?next={url}") |
335 | | - |
336 | | - def test_get(self): |
337 | | - self.client.force_login(self.user) |
338 | | - url = reverse("newsletter:create_post") |
339 | | - response = self.client.get(url) |
340 | | - self.assertTemplateUsed(response, "staff/post_form.html") |
341 | | - |
342 | | - def test_invalid(self): |
343 | | - self.client.force_login(self.user) |
344 | | - response = self.client.post(reverse("newsletter:create_post"), data={}) |
345 | | - self.assertTemplateUsed(response, "staff/post_form.html") |
346 | | - self.assertInHTML( |
347 | | - "<li>This field is required.</li>", |
348 | | - response.content.decode("utf-8"), |
349 | | - ) |
350 | | - |
351 | | - def test_create(self): |
352 | | - self.client.force_login(self.user) |
353 | | - |
354 | | - img = BytesIO() |
355 | | - Image.new("RGB", (1, 1), "#FF0000").save(img, format="PNG") |
356 | | - img.name = "myimage.png" |
357 | | - img.seek(0) |
358 | | - data = { |
359 | | - "title": "Test Create", |
360 | | - "slug": "test-create", |
361 | | - "categories": [self.data.career.id], |
362 | | - "content": "content", |
363 | | - "summary": "summary", |
364 | | - "is_public": False, |
365 | | - "is_published": True, |
366 | | - "open_graph_description": "description", |
367 | | - "open_graph_image": img, |
368 | | - } |
369 | | - response = self.client.post(reverse("newsletter:create_post"), data=data) |
370 | | - |
371 | | - self.assertRedirects( |
372 | | - response, reverse("newsletter:update_post", kwargs={"slug": "test-create"}) |
373 | | - ) |
374 | | - post = Post.objects.get(slug="test-create") |
375 | | - self.assertEqual(post.title, "Test Create") |
376 | | - self.assertEqual(post.categories.get(), self.data.career) |
377 | | - self.assertEqual(post.content, "content") |
378 | | - self.assertEqual(post.summary, "summary") |
379 | | - self.assertEqual(post.open_graph_description, "description") |
380 | | - self.assertFalse(post.is_public) |
381 | | - self.assertTrue(post.is_published) |
382 | | - self.assertIsNotNone(post.open_graph_image.file) |
383 | | - |
384 | | - |
385 | 249 | class TestUpdateSubscription(DataTestCase): |
386 | 250 | def setUp(self) -> None: |
387 | 251 | super().setUp() |
|
0 commit comments