76 lines
2.3 KiB
Python
76 lines
2.3 KiB
Python
from django.urls import reverse
|
|
from rest_framework import status
|
|
from rest_framework.test import APITestCase
|
|
|
|
from vbv_lernwelt.course.creators.test_utils import (
|
|
add_course_session_user,
|
|
create_course,
|
|
create_course_session,
|
|
create_user,
|
|
)
|
|
from vbv_lernwelt.course.models import CourseSessionUser
|
|
|
|
|
|
class ProfileViewTest(APITestCase):
|
|
def setUp(self) -> None:
|
|
self.course, _ = create_course("Test Course")
|
|
self.course_session = create_course_session(
|
|
course=self.course, title="Test Session"
|
|
)
|
|
|
|
self.user = create_user("user")
|
|
add_course_session_user(
|
|
self.course_session,
|
|
self.user,
|
|
role=CourseSessionUser.Role.MEMBER,
|
|
)
|
|
|
|
self.client.force_login(self.user)
|
|
|
|
def test_user_profile(self) -> None:
|
|
# GIVEN
|
|
url = reverse(
|
|
"get_profile_view",
|
|
kwargs={
|
|
"course_session_id": self.course_session.id,
|
|
"user_id": self.user.id,
|
|
},
|
|
)
|
|
|
|
# WHEN
|
|
response = self.client.get(url)
|
|
|
|
# THEN
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
profile = response.data
|
|
self.maxDiff = None
|
|
self.assertDictEqual(
|
|
profile,
|
|
{
|
|
"id": str(self.user.id),
|
|
"first_name": self.user.first_name,
|
|
"last_name": self.user.last_name,
|
|
"email": self.user.email,
|
|
"username": self.user.username,
|
|
"avatar_url": "/static/avatars/myvbv-default-avatar.png",
|
|
"organisation": None,
|
|
"is_superuser": False,
|
|
"course_session_experts": [],
|
|
"language": "de",
|
|
"invoice_address": "prv",
|
|
"street": "",
|
|
"street_number": "",
|
|
"postal_code": "",
|
|
"city": "",
|
|
"country": None,
|
|
"phone_number": "",
|
|
"birth_date": None,
|
|
"organisation_detail_name": "",
|
|
"organisation_street": "",
|
|
"organisation_street_number": "",
|
|
"organisation_postal_code": "",
|
|
"organisation_city": "",
|
|
"organisation_country": None,
|
|
},
|
|
)
|