diff --git a/fet2020/members/tests.py b/fet2020/members/tests.py index e69de29b..831978bf 100644 --- a/fet2020/members/tests.py +++ b/fet2020/members/tests.py @@ -0,0 +1,120 @@ +import os + +from django.core.files.uploadedfile import SimpleUploadedFile +from django.test import TestCase + +from .models import Member, Job, JobGroup +from .forms import MemberForm, JobForm, JobGroupForm + + +class MemberTestCase(TestCase): + def setUp(self): + member = Member() + member.firstname = "Peter" + member.surname = "Traunmüller" + member.nickname = "Pet" + member.mailaccount = "peter@fet.at" + member.role = "A" + member.save() + + def test_member(self): + member = Member.objects.get(firstname="Peter") + self.assertEqual(member.__str__(), "Peter Traunmüller") + self.assertEqual(member.role, "A") + + +class MemberFormTestCase(TestCase): + def test_form(self): + image = SimpleUploadedFile( + name="peter.jpg", + content=open( + os.path.join(os.path.dirname(__file__), "tests/files/peter.jpg"), "rb" + ).read(), + content_type="image/jpeg", + ) + + form = MemberForm( + data={ + "firstname": "Peter", + "surname": "Traunmüller", + "nickname": "Pet", + "mailaccount": "peter@fet.at", + "role": "A", + }, + files={"image": image}, + ) + + self.assertTrue(form.is_valid()) + form.save() + + member = Member.objects.get(firstname="Peter") + self.assertEqual(member.__str__(), "Peter Traunmüller") + + def test_form_error_no_image(self): + form = MemberForm( + data={ + "firstname": "Peter", + "surname": "Traunmüller", + "nickname": "Pet", + "mailaccount": "peter@fet.at", + "role": "A", + }, + ) + + self.assertFalse(form.is_valid()) + self.assertEqual(form.errors.as_data()['__all__'][0].message, "Es fehlt das Profilbild.") + + +class JobGroupFormTestCase(TestCase): + def test_form(self): + form = JobGroupForm( + data={ + "name": "Studienkommission ET", + "shortterm": "Stuko ET", + }, + ) + + self.assertTrue(form.is_valid()) + form.save() + + job_group = JobGroup.objects.get(name="Studienkommission ET") + self.assertEqual(job_group.__str__(), "Studienkommission ET") + self.assertEqual(job_group.slug, "stuko-et") + + def test_form_error_slug(self): + form = JobGroupForm( + data={ + "name": "Studienkommission ET", + "shortterm": "Stuko ET", + }, + ) + + self.assertTrue(form.is_valid()) + form.save() + + job_group = JobGroup.objects.get(name="Studienkommission ET") + self.assertEqual(job_group.__str__(), "Studienkommission ET") + self.assertNotEqual(job_group.slug, "stuko et") + + +class JobFormTestCase(TestCase): + def test_form(self): + job_group = JobGroup() + job_group.name = "Studienkommission ET" + job_group.shortterm = "Stuko ET" + job_group.save() + + form = JobForm( + data={ + "name": "Studienkommission Master", + "shortterm": "Stuko Master", + "job_group": job_group, + }, + ) + + self.assertTrue(form.is_valid()) + form.save() + + job = Job.objects.get(name="Studienkommission Master") + self.assertEqual(job.__str__(), "Stuko Master") + self.assertEqual(job.slug, "stuko-master") diff --git a/fet2020/members/tests/files/peter.jpg b/fet2020/members/tests/files/peter.jpg new file mode 100644 index 00000000..68b9b0e0 Binary files /dev/null and b/fet2020/members/tests/files/peter.jpg differ