From 171556d60a4078f9942475cf949e94ebcdb9a2bd Mon Sep 17 00:00:00 2001 From: Andreas Ellewsenn <ae@uio.no> Date: Thu, 24 Feb 2022 13:15:59 +0100 Subject: [PATCH] Sprinkle unicode characters on tests Verify that the backend accepts unicode for text fields and that it survives to the database and back again --- greg/tests/api/test_person.py | 18 ++++++++++++++++++ gregui/api/views/role.py | 3 +-- gregui/tests/api/views/test_invite_guest.py | 8 ++++---- gregui/tests/api/views/test_userinfo.py | 4 ++-- gregui/tests/conftest.py | 6 +++--- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/greg/tests/api/test_person.py b/greg/tests/api/test_person.py index 9be93335..06ef86a6 100644 --- a/greg/tests/api/test_person.py +++ b/greg/tests/api/test_person.py @@ -114,6 +114,24 @@ def test_persons_verified_filter_exclude( assert results[0]["last_name"] == "Bar" +@pytest.mark.django_db +def test_person_create(client): + url = reverse("v1:person-list") + response = client.post(url, {"first_name": "foo木ðŸ‘Ø£", "last_name": "غbaræ°´"}) + results = response.json() + assert results == { + "id": 1, + "first_name": "foo木ðŸ‘Ø£", + "last_name": "غbaræ°´", + "gender": None, + "date_of_birth": None, + "registration_completed_date": None, + "identities": [], + "roles": [], + "consents": [], + } + + @pytest.mark.django_db def test_add_role( client, person, role_type_visiting_professor, sponsor_guy, unit_human_resources diff --git a/gregui/api/views/role.py b/gregui/api/views/role.py index f81e83aa..da4b24c8 100644 --- a/gregui/api/views/role.py +++ b/gregui/api/views/role.py @@ -31,8 +31,7 @@ class RoleInfoViewSet(ModelViewSet): context={"sponsor": sponsor}, ) serializer.is_valid(raise_exception=True) - instance = serializer.update(role, serializer.validated_data) - instance.save() + serializer.update(role, serializer.validated_data) return Response(status=status.HTTP_200_OK) def create(self, request): diff --git a/gregui/tests/api/views/test_invite_guest.py b/gregui/tests/api/views/test_invite_guest.py index 5a7f8ebf..588529ed 100644 --- a/gregui/tests/api/views/test_invite_guest.py +++ b/gregui/tests/api/views/test_invite_guest.py @@ -21,8 +21,8 @@ def test_invite_guest(client, user_sponsor, unit_foo, role_type_foo, mocker): role_end_date = datetime.datetime.today() + datetime.timedelta(days=10) data = { - "first_name": "Foo", - "last_name": "Bar", + "first_name": "foo木ðŸ‘Ø£", + "last_name": "غbaræ°´", "email": "test@example.com", "role": { "start_date": (role_start_date).strftime("%Y-%m-%d"), @@ -46,8 +46,8 @@ def test_invite_guest(client, user_sponsor, unit_foo, role_type_foo, mocker): assert Person.objects.count() == 1 person = Person.objects.first() - assert person.first_name == "Foo" - assert person.last_name == "Bar" + assert person.first_name == "foo木ðŸ‘Ø£" + assert person.last_name == "غbaræ°´" assert Identity.objects.filter( person=person, diff --git a/gregui/tests/api/views/test_userinfo.py b/gregui/tests/api/views/test_userinfo.py index b135ff8e..e6212bc7 100644 --- a/gregui/tests/api/views/test_userinfo.py +++ b/gregui/tests/api/views/test_userinfo.py @@ -24,7 +24,7 @@ def test_userinfo_invited_get(client, invitation_link): "sponsor_id": None, "person_id": 1, "first_name": "Foo", - "last_name": "Bar", + "last_name": "BaÙ…r", "email": "foo@example.org", "mobile_phone": None, "fnr": None, @@ -85,7 +85,7 @@ def test_userinfo_guest_get(client, log_in, user_person): "person_id": 1, "roles": [], "consents": [], - "first_name": "Foo", + "first_name": "FooÙ…", "last_name": "Bar", "email": "foo@bar.com", "mobile_phone": None, diff --git a/gregui/tests/conftest.py b/gregui/tests/conftest.py index e3571037..c7500fd5 100644 --- a/gregui/tests/conftest.py +++ b/gregui/tests/conftest.py @@ -367,7 +367,7 @@ def create_person() -> Callable[ @pytest.fixture def person_foo_data() -> dict: return dict( - first_name="Foo", + first_name="FooÙ…", last_name="Bar", email="foo@bar.com", feide_id="bar@baz.org", @@ -378,7 +378,7 @@ def person_foo_data() -> dict: @pytest.fixture def person_foo(create_person) -> Person: person = create_person( - first_name="Foo", + first_name="FooÙ…", last_name="Bar", email="foo@bar.com", feide_id="bar@baz.org", @@ -390,7 +390,7 @@ def person_foo(create_person) -> Person: @pytest.fixture def person_invited(create_person) -> Person: """Invited person before registration.""" - person = create_person(first_name="Foo", last_name="Bar", email="foo@example.org") + person = create_person(first_name="Foo", last_name="BaÙ…r", email="foo@example.org") return Person.objects.get(id=person.id) -- GitLab