Readd completion code
This commit is contained in:
parent
b5804c2696
commit
8ab17f9370
|
|
@ -15,7 +15,7 @@ from vbv_lernwelt.core.views import (
|
|||
rate_limit_exceeded_view,
|
||||
permission_denied_view,
|
||||
check_rate_limit, cypress_reset_view, vue_home, vue_login, me_user_view, vue_logout, generate_web_component_icons, )
|
||||
from vbv_lernwelt.course.views import page_api_view
|
||||
from vbv_lernwelt.course.views import page_api_view, request_course_completion, mark_course_completion
|
||||
|
||||
|
||||
def raise_example_error(request):
|
||||
|
|
@ -47,6 +47,8 @@ urlpatterns = [
|
|||
|
||||
# course
|
||||
path(r"api/course/page/<slug:slug>/", page_api_view, name="page_api_view"),
|
||||
path(r"api/course/completion/mark/", mark_course_completion, name="mark_course_completion"),
|
||||
path(r"api/course/completion/<course_id>/", request_course_completion, name="request_course_completion"),
|
||||
|
||||
# completion
|
||||
# path(r"api/completion/circle/<uuid:circle_key>/", request_circle_completion, name="request_circle_completion"),
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import wagtail_factories
|
|||
from django.conf import settings
|
||||
from wagtail.models import Site
|
||||
|
||||
from vbv_lernwelt.core.create_default_users import create_default_users
|
||||
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
|
||||
|
|
|
|||
|
|
@ -4,25 +4,24 @@ from rest_framework.test import APITestCase
|
|||
|
||||
from vbv_lernwelt.core.create_default_users import create_default_users
|
||||
from vbv_lernwelt.core.models import User
|
||||
from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail
|
||||
from vbv_lernwelt.course.consts import COURSE_TEST_ID
|
||||
from vbv_lernwelt.course.creators.test_course import create_test_course
|
||||
from vbv_lernwelt.course.models import CourseCompletion
|
||||
from vbv_lernwelt.learnpath.models import LearningContent
|
||||
|
||||
|
||||
class CourseCompletionApiTestCase(APITestCase):
|
||||
def setUp(self) -> None:
|
||||
create_locales_for_wagtail()
|
||||
create_default_users()
|
||||
create_simple_test_learning_path()
|
||||
create_test_course()
|
||||
self.user = User.objects.get(username='student')
|
||||
self.client.login(username='student', password='test')
|
||||
|
||||
def test_completeLearningContent_works(self):
|
||||
learning_content = LearningContent.objects.get(title='Einleitung Circle "Unit-Test Circle"')
|
||||
learning_content = LearningContent.objects.get(title='Fachcheck Fahrzeug')
|
||||
learning_content_key = str(learning_content.translation_key)
|
||||
circle_key = str(learning_content.get_parent().translation_key)
|
||||
|
||||
mark_url = f'/api/completion/circle/mark/'
|
||||
print(mark_url)
|
||||
mark_url = f'/api/course/completion/mark/'
|
||||
|
||||
response = self.client.post(mark_url, {
|
||||
'page_key': learning_content_key,
|
||||
|
|
@ -33,16 +32,34 @@ class CourseCompletionApiTestCase(APITestCase):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(len(response_json), 1)
|
||||
self.assertEqual(response_json[0]['page_key'], learning_content_key)
|
||||
self.assertEqual(response_json[0]['circle_key'], circle_key)
|
||||
self.assertTrue(response_json[0]['completed'])
|
||||
self.assertEqual(response_json[0]['completion_status'], 'success')
|
||||
|
||||
db_entry = CourseCompletion.objects.get(user=self.user, course_id=COURSE_TEST_ID, page_key=learning_content_key)
|
||||
self.assertEqual(db_entry.completion_status, 'success')
|
||||
|
||||
# test getting the circle data
|
||||
response = self.client.get(f'/api/completion/circle/{circle_key}/')
|
||||
response = self.client.get(f'/api/course/completion/{COURSE_TEST_ID}/')
|
||||
print(response.status_code)
|
||||
response_json = response.json()
|
||||
print(json.dumps(response.json(), indent=2))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(len(response_json), 1)
|
||||
self.assertEqual(response_json[0]['page_key'], learning_content_key)
|
||||
self.assertEqual(response_json[0]['circle_key'], circle_key)
|
||||
self.assertTrue(response_json[0]['completed'])
|
||||
self.assertTrue(response_json[0]['completion_status'], 'success')
|
||||
|
||||
# test with "fail"
|
||||
response = self.client.post(mark_url, {
|
||||
'page_key': learning_content_key,
|
||||
'completion_status': 'fail',
|
||||
})
|
||||
|
||||
response_json = response.json()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(len(response_json), 1)
|
||||
self.assertEqual(response_json[0]['page_key'], learning_content_key)
|
||||
self.assertEqual(response_json[0]['completion_status'], 'fail')
|
||||
|
||||
db_entry = CourseCompletion.objects.get(user=self.user, course_id=COURSE_TEST_ID, page_key=learning_content_key)
|
||||
self.assertEqual(db_entry.completion_status, 'fail')
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ def page_api_view(request, slug):
|
|||
@api_view(['GET'])
|
||||
def request_course_completion(request, course_id):
|
||||
response_data = CourseCompletionSerializer(
|
||||
CourseCompletion.objects.filter(user=request.user, circle_id=course_id),
|
||||
CourseCompletion.objects.filter(user=request.user, course_id=course_id),
|
||||
many=True,
|
||||
).data
|
||||
|
||||
|
|
@ -52,7 +52,7 @@ def mark_course_completion(request):
|
|||
cc.save()
|
||||
|
||||
response_data = CourseCompletionSerializer(
|
||||
CourseCompletion.objects.filter(user=request.user, circle_id=course_id),
|
||||
CourseCompletion.objects.filter(user=request.user, course_id=course.id),
|
||||
many=True,
|
||||
).data
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue