Refactoring: auth tests pass

This commit is contained in:
lvrossem
2023-04-16 07:15:03 -06:00
parent d38d4d5c16
commit 0bf764a0f4
14 changed files with 116 additions and 93 deletions

View File

@@ -1,4 +1,4 @@
from sqlalchemy import Column, Float, ForeignKey, Integer, String
from sqlalchemy import Column, Float, ForeignKey, Integer, String, Boolean
from sqlalchemy.orm import relationship
from src.database import Base
@@ -12,7 +12,8 @@ class User(Base):
user_id = Column(Integer, primary_key=True, index=True)
username = Column(String, unique=True, index=True, nullable=False)
hashed_password = Column(String, nullable=False)
avatar = Column(String, nullable=False)
avatar_index = Column(Integer, nullable=False)
playtime = Column(Float, nullable=False)
high_scores = relationship(
"HighScore", back_populates="owner", cascade="all, delete", lazy="dynamic"
@@ -29,6 +30,7 @@ class HighScore(Base):
high_score_id = Column(Integer, primary_key=True, index=True)
score_value = Column(Float, nullable=False)
time = Column(String, nullable=False)
minigame = Column(String, nullable=False)
owner_id = Column(Integer, ForeignKey("users.user_id"))
owner = relationship("User", back_populates="high_scores")
@@ -40,7 +42,22 @@ class CourseProgress(Base):
__tablename__ = "course_progress"
course_progress_id = Column(Integer, primary_key=True, index=True)
progress_value = Column(Float, nullable=False)
progress = Column(Float, nullable=False)
course = Column(String, nullable=False)
owner_id = Column(Integer, ForeignKey("users.user_id"))
owner = relationship("User", back_populates="course_progress")
learnables = relationship("LearnableProgress", back_populates="course")
class LearnableProgress(Base):
"""The database model for learnable progress"""
__tablename__ = "learnable_progress"
learnable_progress_id = Column(Integer, primary_key=True, index=True)
index = Column(Integer, nullable=False)
in_use = Column(Boolean, nullable=False)
name = Column(String, nullable=False)
progress = Column(Float, nullable=False)
course_id = Column(Integer, ForeignKey("course_progress.course_progress_id"))
course = relationship("CourseProgress", back_populates="learnables")