All tests pass

This commit is contained in:
lvrossem
2023-04-18 07:26:07 -06:00
parent d376e39773
commit 55a5f59524
2 changed files with 31 additions and 19 deletions

View File

@@ -1,11 +1,25 @@
from fastapi import HTTPException from fastapi import HTTPException
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from typing import List
from src.enums import CourseEnum from src.enums import CourseEnum
from src.models import CourseProgress, User from src.models import CourseProgress, User
from src.schemas.courseprogress import CourseProgressBase, CourseProgressParent, SavedCourseProgress from src.schemas.courseprogress import CourseProgressBase, CourseProgressParent, SavedCourseProgress
from src.schemas.learnableprogress import SavedLearnableProgress
from src.crud.learnableprogress import get_learnables from src.crud.learnableprogress import get_learnables
def get_learnable_values(learnables: List[SavedLearnableProgress]):
completed_learnables = sum(
[1 if learnable.progress == 5.0 else 0 for learnable in learnables]
)
in_use_learnables = sum(
[1 if learnable.in_use else 0 for learnable in learnables]
)
total_learnables = len(learnables)
return completed_learnables, in_use_learnables, total_learnables
def get_course_progress(db: Session, user: User, course: CourseEnum): def get_course_progress(db: Session, user: User, course: CourseEnum):
"""Get the progress a user has for a certain course""" """Get the progress a user has for a certain course"""
@@ -31,15 +45,7 @@ def get_course_progress(db: Session, user: User, course: CourseEnum):
print("CURRENT COURSE: " + course_progress.course) print("CURRENT COURSE: " + course_progress.course)
learnables = get_learnables(db, user, course) learnables = get_learnables(db, user, course)
completed_learnables = sum( completed_learnables, in_use_learnables, total_learnables = get_learnable_values(learnables)
[1 if learnable.progress == 5.0 else 0 for learnable in learnables]
)
in_use_learnables = sum(
[1 if learnable.in_use else 0 for learnable in learnables]
)
total_learnables = len(learnables)
result.append(SavedCourseProgress( result.append(SavedCourseProgress(
course_index=course_progress.course, course_index=course_progress.course,
@@ -104,14 +110,20 @@ def patch_course_progress(
db_course_progress.progress = course_progress.progress db_course_progress.progress = course_progress.progress
db.commit() db.commit()
return [ result = []
SavedCourseProgress(
for db_cp in db_course_progress_list:
learnables = get_learnables(db, user, db_cp.course)
completed_learnables, in_use_learnables, total_learnables = get_learnable_values(learnables)
result.append(SavedCourseProgress(
course_index=db_cp.course, course_index=db_cp.course,
progress=db_cp.progress, progress=db_cp.progress,
completed_learnables=db, completed_learnables=completed_learnables,
in_use_learnables=0, in_use_learnables=in_use_learnables,
total_learnables=0, total_learnables=total_learnables,
learnables=[], learnables=learnables,
) ))
for db_cp in db_course_progress_list
] return result

View File

@@ -117,7 +117,7 @@ async def test_patch_all_should_patch_all_courses():
for course in CourseEnum: for course in CourseEnum:
if course != CourseEnum.All: if course != CourseEnum.All:
assert {"progress": 0.0, "course_index": course, "completed_learnables": 0, "in_use_learnables": 0, "total_learnables": 0, "learnables": []} in response assert {"progress": progress, "course_index": course, "completed_learnables": 0, "in_use_learnables": 0, "total_learnables": 0, "learnables": []} in response
@pytest.mark.asyncio @pytest.mark.asyncio