Files
MarietjeDjango/marietje/announcements/tests/test_services.py
2023-10-11 16:49:37 +02:00

44 lines
2.1 KiB
Python

from django.test import TestCase
from announcements import models
from announcements.services import sanitize_closed_announcements, validate_closed_announcements
class OrderServicesTests(TestCase):
def test_sanitize_closed_announcements_none(self):
self.assertEquals([], sanitize_closed_announcements(None))
def test_sanitize_closed_announcements_non_string(self):
self.assertEquals([], sanitize_closed_announcements(5))
def test_sanitize_closed_announcements_non_json(self):
self.assertEquals([], sanitize_closed_announcements("this,is,not,json"))
def test_sanitize_closed_announcements_non_list(self):
self.assertEquals([], sanitize_closed_announcements("{}"))
def test_sanitize_closed_announcements_list_of_ints(self):
self.assertEquals([1, 8, 4], sanitize_closed_announcements("[1, 8, 4]"))
def test_sanitize_closed_announcements_list_of_different_types(self):
self.assertEquals(
[1, 8, 4], sanitize_closed_announcements('[1, "bla", 8, 4, 123.4, {"a": "b"}, ["This is also a list"]]')
)
def test_validate_closed_announcements_all_exist(self):
announcement_1 = models.Announcement.objects.create(title="Announcement 1", content="blablabla")
announcement_2 = models.Announcement.objects.create(title="Announcement 2", content="blablabla")
announcement_3 = models.Announcement.objects.create(title="Announcement 3", content="blablabla")
self.assertEqual(
{announcement_1.id, announcement_2.id, announcement_3.id}, set(validate_closed_announcements([1, 2, 3]))
)
def test_validate_closed_announcements_some_do_not_exist(self):
announcement_1 = models.Announcement.objects.create(title="Announcement 1", content="blablabla")
announcement_2 = models.Announcement.objects.create(title="Announcement 2", content="blablabla")
announcement_3 = models.Announcement.objects.create(title="Announcement 3", content="blablabla")
self.assertEqual(
{announcement_1.id, announcement_2.id, announcement_3.id},
set(validate_closed_announcements([1, 2, 3, 4, 5, 6])),
)