Fix python tests
This commit is contained in:
parent
c64341a6c1
commit
c0dc4d6a2f
|
|
@ -1,5 +1,3 @@
|
|||
from wagtail.blocks import StreamValue
|
||||
|
||||
from vbv_lernwelt.assignment.models import TaskContentStreamBlock
|
||||
from vbv_lernwelt.assignment.tests.assignment_factories import (
|
||||
AssignmentFactory,
|
||||
|
|
@ -10,8 +8,9 @@ from vbv_lernwelt.assignment.tests.assignment_factories import (
|
|||
UserTextInputBlockFactory,
|
||||
)
|
||||
from vbv_lernwelt.core.utils import replace_whitespace
|
||||
from vbv_lernwelt.course.consts import COURSE_UK, COURSE_TEST_ID
|
||||
from vbv_lernwelt.course.consts import COURSE_TEST_ID, COURSE_UK
|
||||
from vbv_lernwelt.course.models import CoursePage
|
||||
from wagtail.blocks import StreamValue
|
||||
|
||||
|
||||
def create_uk_assignments(course_id=COURSE_UK):
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from vbv_lernwelt.course.creators.test_course import create_test_course
|
|||
class CompetenceAPITestCase(APITestCase):
|
||||
def setUp(self) -> None:
|
||||
create_default_users()
|
||||
create_test_course()
|
||||
create_test_course(include_uk=False)
|
||||
self.user = User.objects.get(username="admin")
|
||||
self.client.login(username="admin", password="test")
|
||||
|
||||
|
|
@ -23,6 +23,6 @@ class CompetenceAPITestCase(APITestCase):
|
|||
|
||||
self.assertEqual(competence_profile.title, data["title"])
|
||||
self.assertEqual(
|
||||
"Innerhalb des Handlungsfelds «Fahrzeug» bin ich fähig, die Ziele und Pläne des Kunden zu ergründen (SOLL).",
|
||||
"Ich bin fähig zu Reisen eine Gesprächsführung zu machen",
|
||||
data["children"][1]["children"][0]["title"],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -16,20 +16,20 @@ from vbv_lernwelt.competence.models import CompetencePage
|
|||
from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail
|
||||
from vbv_lernwelt.course.consts import COURSE_TEST_ID
|
||||
from vbv_lernwelt.course.factories import CoursePageFactory
|
||||
from vbv_lernwelt.course.models import Course, CoursePage, CourseSession, CourseCategory
|
||||
from vbv_lernwelt.course.models import Course, CourseCategory, CoursePage, CourseSession
|
||||
from vbv_lernwelt.learnpath.tests.learning_path_factories import (
|
||||
AssignmentBlockFactory,
|
||||
AttendanceDayBlockFactory,
|
||||
CircleFactory,
|
||||
FeedbackBlockFactory,
|
||||
LearningContentFactory,
|
||||
LearningModuleBlockFactory,
|
||||
LearningPathFactory,
|
||||
LearningSequenceFactory,
|
||||
LearningUnitFactory,
|
||||
TopicFactory,
|
||||
MediaLibraryBlockFactory,
|
||||
AttendanceDayBlockFactory,
|
||||
FeedbackBlockFactory,
|
||||
TopicFactory,
|
||||
VideoBlockFactory,
|
||||
LearningModuleBlockFactory,
|
||||
AssignmentBlockFactory,
|
||||
)
|
||||
from vbv_lernwelt.media_library.tests.media_library_factories import (
|
||||
create_external_link_block,
|
||||
|
|
@ -42,20 +42,27 @@ from vbv_lernwelt.media_library.tests.media_library_factories import (
|
|||
)
|
||||
|
||||
|
||||
def create_test_course():
|
||||
def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
|
||||
create_locales_for_wagtail()
|
||||
create_test_course_with_categories()
|
||||
|
||||
create_test_assignments()
|
||||
create_test_competence_profile()
|
||||
create_test_learning_path()
|
||||
if include_uk:
|
||||
create_test_assignments()
|
||||
|
||||
create_test_learning_path(include_uk=include_uk, include_vv=include_vv)
|
||||
create_test_media_library()
|
||||
|
||||
# course sessions
|
||||
CourseSession.objects.create(
|
||||
course_id=COURSE_TEST_ID,
|
||||
title="Bern 2022 a",
|
||||
)
|
||||
if with_sessions:
|
||||
# course sessions
|
||||
CourseSession.objects.create(
|
||||
course_id=COURSE_TEST_ID,
|
||||
title="Bern 2022 a",
|
||||
)
|
||||
CourseSession.objects.create(
|
||||
course_id=COURSE_TEST_ID,
|
||||
title="Zürich 2022 a",
|
||||
)
|
||||
|
||||
|
||||
def create_test_course_with_categories(apps=None, schema_editor=None):
|
||||
|
|
@ -96,15 +103,17 @@ def create_test_course_with_categories(apps=None, schema_editor=None):
|
|||
course.save()
|
||||
|
||||
|
||||
def create_test_learning_path(user=None, skip_locales=True):
|
||||
def create_test_learning_path(include_uk=True, include_vv=True):
|
||||
course_page = CoursePage.objects.get(course_id=COURSE_TEST_ID)
|
||||
lp = LearningPathFactory(title="Test Lernpfad", parent=course_page)
|
||||
|
||||
TopicFactory(title="Circle ÜK", is_visible=False, parent=lp)
|
||||
create_test_uk_circle_fahrzeug(lp, title="Fahrzeug")
|
||||
if include_uk:
|
||||
TopicFactory(title="Circle ÜK", is_visible=False, parent=lp)
|
||||
create_test_uk_circle_fahrzeug(lp, title="Fahrzeug")
|
||||
|
||||
TopicFactory(title="Circle VV", is_visible=False, parent=lp)
|
||||
create_test_circle_reisen(lp)
|
||||
if include_vv:
|
||||
TopicFactory(title="Circle VV", is_visible=False, parent=lp)
|
||||
create_test_circle_reisen(lp)
|
||||
|
||||
|
||||
def create_test_uk_circle_fahrzeug(lp, title="Fahrzeug"):
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ def command(course):
|
|||
create_course_uk_fr()
|
||||
|
||||
if COURSE_TEST_ID in course:
|
||||
create_test_course()
|
||||
create_test_course(with_sessions=True)
|
||||
|
||||
|
||||
def create_versicherungsvermittlerin_course():
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ from vbv_lernwelt.learnpath.models import LearningContent
|
|||
class CourseCompletionApiTestCase(APITestCase):
|
||||
def setUp(self) -> None:
|
||||
create_default_users()
|
||||
create_test_course()
|
||||
create_test_course(include_uk=False)
|
||||
self.user = User.objects.get(username="admin")
|
||||
self.cs = CourseSession.objects.create(
|
||||
course_id=COURSE_TEST_ID,
|
||||
|
|
@ -30,7 +30,7 @@ class CourseCompletionApiTestCase(APITestCase):
|
|||
self.client.login(username="admin", password="test")
|
||||
|
||||
def test_completeLearningContent_works(self):
|
||||
learning_content = LearningContent.objects.get(title="Fachcheck Fahrzeug")
|
||||
learning_content = LearningContent.objects.get(title="Fachcheck Reisen")
|
||||
learning_content_key = str(learning_content.translation_key)
|
||||
|
||||
mark_url = f"/api/course/completion/mark/"
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ from vbv_lernwelt.course.models import CourseSession, CourseSessionUser
|
|||
class CourseCompletionApiTestCase(APITestCase):
|
||||
def setUp(self) -> None:
|
||||
create_default_users()
|
||||
create_test_course()
|
||||
create_test_course(include_uk=False)
|
||||
|
||||
self.user = User.objects.get(username="student")
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class DocumentUploadApiTestCase(APITestCase):
|
|||
user=User.objects.get(username="patrizia.huggel@eiger-versicherungen.ch"),
|
||||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-analyse"))
|
||||
csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug"))
|
||||
|
||||
_csu = CourseSessionUser.objects.create(
|
||||
course_session=self.course_session,
|
||||
|
|
@ -52,7 +52,7 @@ class DocumentUploadApiTestCase(APITestCase):
|
|||
@override_settings(FILE_UPLOAD_STORAGE="s3")
|
||||
def test_can_start_upload(self):
|
||||
ls = LearningSequence.objects.get(
|
||||
slug="test-lehrgang-lp-circle-analyse-ls-beobachten"
|
||||
slug="test-lehrgang-lp-circle-fahrzeug-ls-vorbereitung"
|
||||
)
|
||||
|
||||
self.test_data["learning_sequence"] = ls.id
|
||||
|
|
@ -78,7 +78,7 @@ class DocumentUploadApiTestCase(APITestCase):
|
|||
|
||||
def test_cannot_start_upload_in_other_circle(self):
|
||||
ls = LearningSequence.objects.get(
|
||||
slug="test-lehrgang-lp-circle-basis-ls-starten"
|
||||
slug="test-lehrgang-lp-circle-reisen-ls-analyse"
|
||||
)
|
||||
self.test_data["learning_sequence"] = ls.id
|
||||
response = self.client.post(f"/api/core/document/start/", self.test_data)
|
||||
|
|
@ -88,7 +88,7 @@ class DocumentUploadApiTestCase(APITestCase):
|
|||
def test_student_cannot_start_uploads(self):
|
||||
self.client.login(username="student", password="test")
|
||||
ls = LearningSequence.objects.get(
|
||||
slug="test-lehrgang-lp-circle-basis-ls-starten"
|
||||
slug="test-lehrgang-lp-circle-fahrzeug-ls-vorbereitung"
|
||||
)
|
||||
self.test_data["learning_sequence"] = ls.id
|
||||
response = self.client.post(f"/api/core/document/start/", self.test_data)
|
||||
|
|
@ -97,7 +97,7 @@ class DocumentUploadApiTestCase(APITestCase):
|
|||
|
||||
def test_expert_can_finish_own_upload(self):
|
||||
ls = LearningSequence.objects.get(
|
||||
slug="test-lehrgang-lp-circle-analyse-ls-beobachten"
|
||||
slug="test-lehrgang-lp-circle-fahrzeug-ls-vorbereitung"
|
||||
)
|
||||
self.test_data["learning_sequence"] = ls.id
|
||||
response = self.client.post(f"/api/core/document/start/", self.test_data)
|
||||
|
|
@ -135,7 +135,7 @@ class DocumentUploadApiTestCase(APITestCase):
|
|||
|
||||
def test_can_delete_document(self):
|
||||
ls = LearningSequence.objects.get(
|
||||
slug="test-lehrgang-lp-circle-analyse-ls-beobachten"
|
||||
slug="test-lehrgang-lp-circle-fahrzeug-ls-vorbereitung"
|
||||
)
|
||||
file = UploadFile(
|
||||
original_file_name="test.pdf",
|
||||
|
|
@ -169,7 +169,7 @@ class DocumentUploadApiTestCase(APITestCase):
|
|||
def test_student_cannot_delete_document(self):
|
||||
self.client.login(username="student", password="test")
|
||||
ls = LearningSequence.objects.get(
|
||||
slug="test-lehrgang-lp-circle-analyse-ls-beobachten"
|
||||
slug="test-lehrgang-lp-circle-fahrzeug-ls-vorbereitung"
|
||||
)
|
||||
file = UploadFile(
|
||||
original_file_name="test.pdf",
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class FeedbackApiBaseTestCase(APITestCase):
|
|||
user=User.objects.get(username="patrizia.huggel@eiger-versicherungen.ch"),
|
||||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-analyse"))
|
||||
csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug"))
|
||||
|
||||
_csu = CourseSessionUser.objects.create(
|
||||
course_session=self.course_session,
|
||||
|
|
@ -58,7 +58,7 @@ class FeedbackSummaryApiTestCase(FeedbackApiBaseTestCase):
|
|||
user=expert,
|
||||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
basis_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-basis")
|
||||
basis_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-reisen")
|
||||
csu.expert.add(basis_circle)
|
||||
|
||||
FeedbackFactory(circle=basis_circle, course_session=csu.course_session).save()
|
||||
|
|
@ -81,7 +81,7 @@ class FeedbackSummaryApiTestCase(FeedbackApiBaseTestCase):
|
|||
user=expert,
|
||||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
basis_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-basis")
|
||||
basis_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-reisen")
|
||||
csu.expert.add(basis_circle)
|
||||
|
||||
feedback = FeedbackFactory(
|
||||
|
|
@ -100,26 +100,26 @@ class FeedbackSummaryApiTestCase(FeedbackApiBaseTestCase):
|
|||
self.assertEqual(len(Notification.objects.all()), 0)
|
||||
|
||||
def test_can_get_feedback_summary_for_circles(self):
|
||||
number_basis_feedback = 5
|
||||
number_analyse_feedback = 10
|
||||
number_reisen_feedback = 5
|
||||
number_fahrzeug_feedback = 10
|
||||
|
||||
csu = CourseSessionUser.objects.get(
|
||||
course_session=self.course_session,
|
||||
user=User.objects.get(username="patrizia.huggel@eiger-versicherungen.ch"),
|
||||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
analyse_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-analyse")
|
||||
basis_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-basis")
|
||||
csu.expert.add(basis_circle)
|
||||
fahrzeug_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug")
|
||||
reisen_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-reisen")
|
||||
csu.expert.add(reisen_circle)
|
||||
|
||||
for i in range(number_basis_feedback):
|
||||
for i in range(number_reisen_feedback):
|
||||
FeedbackFactory(
|
||||
circle=basis_circle, course_session=csu.course_session
|
||||
circle=reisen_circle, course_session=csu.course_session
|
||||
).save()
|
||||
|
||||
for i in range(number_analyse_feedback):
|
||||
for i in range(number_fahrzeug_feedback):
|
||||
FeedbackFactory(
|
||||
circle=analyse_circle, course_session=csu.course_session
|
||||
circle=fahrzeug_circle, course_session=csu.course_session
|
||||
).save()
|
||||
|
||||
response = self.client.get(
|
||||
|
|
@ -128,8 +128,8 @@ class FeedbackSummaryApiTestCase(FeedbackApiBaseTestCase):
|
|||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
expected = [
|
||||
{"circle_id": basis_circle.id, "count": number_basis_feedback},
|
||||
{"circle_id": analyse_circle.id, "count": number_analyse_feedback},
|
||||
{"circle_id": fahrzeug_circle.id, "count": number_fahrzeug_feedback},
|
||||
{"circle_id": reisen_circle.id, "count": number_reisen_feedback},
|
||||
]
|
||||
self.assertEqual(response.data, expected)
|
||||
|
||||
|
|
@ -142,17 +142,17 @@ class FeedbackSummaryApiTestCase(FeedbackApiBaseTestCase):
|
|||
user=User.objects.get(username="patrizia.huggel@eiger-versicherungen.ch"),
|
||||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
analyse_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-analyse")
|
||||
basis_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-basis")
|
||||
fahrzeug_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug")
|
||||
reisen_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-reisen")
|
||||
|
||||
for i in range(number_basis_feedback):
|
||||
FeedbackFactory(
|
||||
circle=basis_circle, course_session=csu.course_session
|
||||
circle=reisen_circle, course_session=csu.course_session
|
||||
).save()
|
||||
|
||||
for i in range(number_analyse_feedback):
|
||||
FeedbackFactory(
|
||||
circle=analyse_circle, course_session=csu.course_session
|
||||
circle=fahrzeug_circle, course_session=csu.course_session
|
||||
).save()
|
||||
|
||||
response = self.client.get(
|
||||
|
|
@ -161,7 +161,7 @@ class FeedbackSummaryApiTestCase(FeedbackApiBaseTestCase):
|
|||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
expected = [
|
||||
{"circle_id": analyse_circle.id, "count": number_analyse_feedback},
|
||||
{"circle_id": fahrzeug_circle.id, "count": number_analyse_feedback},
|
||||
]
|
||||
self.assertEqual(response.data, expected)
|
||||
|
||||
|
|
@ -171,8 +171,10 @@ class FeedbackSummaryApiTestCase(FeedbackApiBaseTestCase):
|
|||
course_session=self.course_session,
|
||||
user=self.user,
|
||||
)
|
||||
analyse_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-analyse")
|
||||
FeedbackFactory(circle=analyse_circle, course_session=csu.course_session).save()
|
||||
fahrzeug_circle = Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug")
|
||||
FeedbackFactory(
|
||||
circle=fahrzeug_circle, course_session=csu.course_session
|
||||
).save()
|
||||
|
||||
response = self.client.get(
|
||||
f"/api/core/feedback/{csu.course_session.course.id}/summary/"
|
||||
|
|
@ -202,7 +204,7 @@ class FeedbackDetailApiTestCase(FeedbackApiBaseTestCase):
|
|||
user=User.objects.get(username="patrizia.huggel@eiger-versicherungen.ch"),
|
||||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
circle = Circle.objects.get(slug="test-lehrgang-lp-circle-analyse")
|
||||
circle = Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug")
|
||||
|
||||
for i in range(3):
|
||||
FeedbackFactory(
|
||||
|
|
@ -249,7 +251,7 @@ class FeedbackDetailApiTestCase(FeedbackApiBaseTestCase):
|
|||
role=CourseSessionUser.Role.EXPERT,
|
||||
)
|
||||
|
||||
circle = Circle.objects.get(slug="test-lehrgang-lp-circle-basis")
|
||||
circle = Circle.objects.get(slug="test-lehrgang-lp-circle-reisen")
|
||||
FeedbackFactory(circle=circle, course_session=csu.course_session).save()
|
||||
|
||||
response = self.client.get(
|
||||
|
|
@ -265,7 +267,7 @@ class FeedbackDetailApiTestCase(FeedbackApiBaseTestCase):
|
|||
course_session=self.course_session,
|
||||
user=self.user,
|
||||
)
|
||||
circle = Circle.objects.get(slug="test-lehrgang-lp-circle-analyse")
|
||||
circle = Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug")
|
||||
FeedbackFactory(circle=circle, course_session=csu.course_session).save()
|
||||
|
||||
response = self.client.get(
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ class TestRetrieveLearingPathContents(APITestCase):
|
|||
# topics and circles
|
||||
self.assertEqual(4, len(data["children"]))
|
||||
# circle "analyse" contents
|
||||
self.assertEqual(14, len(data["children"][3]["children"]))
|
||||
self.assertEqual(13, len(data["children"][3]["children"]))
|
||||
|
||||
def test_normalUser_withoutCourseSession_cannotAccess(self):
|
||||
self.user = User.objects.get(username="student")
|
||||
|
|
|
|||
|
|
@ -8,12 +8,12 @@ from vbv_lernwelt.learnpath.models import LearningContent
|
|||
class SaveSlugTestCase(TestCase):
|
||||
def setUp(self) -> None:
|
||||
create_default_users()
|
||||
create_test_course()
|
||||
create_test_course(include_uk=False)
|
||||
|
||||
def test_save_willHandleSlug(self):
|
||||
lc_fachcheck = LearningContent.objects.get(title="Fachcheck Fahrzeug")
|
||||
lc_fachcheck = LearningContent.objects.get(title="Fachcheck Reisen")
|
||||
self.assertEqual(
|
||||
lc_fachcheck.slug, "test-lehrgang-lp-circle-analyse-lc-fachcheck-fahrzeug"
|
||||
lc_fachcheck.slug, "test-lehrgang-lp-circle-reisen-lc-fachcheck-reisen"
|
||||
)
|
||||
|
||||
# only changing minutes should not change slug
|
||||
|
|
@ -21,7 +21,7 @@ class SaveSlugTestCase(TestCase):
|
|||
lc_fachcheck.save()
|
||||
lc_fachcheck = LearningContent.objects.get(id=lc_fachcheck.id)
|
||||
self.assertEqual(
|
||||
lc_fachcheck.slug, "test-lehrgang-lp-circle-analyse-lc-fachcheck-fahrzeug"
|
||||
lc_fachcheck.slug, "test-lehrgang-lp-circle-reisen-lc-fachcheck-reisen"
|
||||
)
|
||||
|
||||
# changing title should change slug
|
||||
|
|
@ -29,5 +29,5 @@ class SaveSlugTestCase(TestCase):
|
|||
lc_fachcheck.save()
|
||||
lc_fachcheck = LearningContent.objects.get(id=lc_fachcheck.id)
|
||||
self.assertEqual(
|
||||
lc_fachcheck.slug, "test-lehrgang-lp-circle-analyse-lc-fachcheck-foobar"
|
||||
lc_fachcheck.slug, "test-lehrgang-lp-circle-reisen-lc-fachcheck-foobar"
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue