Foreign Keys

This commit is contained in:
2024-05-21 15:46:46 +02:00
parent bf6d3b737a
commit 57b5b4ffab
3 changed files with 12 additions and 12 deletions

10
init.py
View File

@ -2,6 +2,7 @@ from flask import Flask
from flask_login import LoginManager, UserMixin
from flask_sqlalchemy import SQLAlchemy
from flask_talisman import Talisman
from sqlalchemy import ForeignKey
from get_mysql import get_mysql
import atexit
@ -43,7 +44,8 @@ class User(UserMixin, db.Model):
"""
Datenbank-Modell für User.
"""
id = db.Column(db.Integer, primary_key=True)
__tablename__ = 'user'
id = db.Column(db.Integer, ForeignKey('dualis.uid', ondelete='CASCADE'), primary_key=True)
email = db.Column(db.String(255), unique=True)
name = db.Column(db.String(255))
kurs = db.Column(db.String(15))
@ -53,6 +55,7 @@ class Dualis(db.Model):
"""
Datenbank-Modell für Dualis.
"""
__tablename__ = 'dualis'
token = db.Column(db.String(255), unique=True)
uid = db.Column(db.Integer, primary_key=True)
token_created = db.Column(db.Integer)
@ -63,7 +66,8 @@ class Semesterlist(db.Model):
"""
Datenbank-Modell für Semester-Liste.
"""
uid = db.Column(db.Integer)
__tablename__ = 'semesterlist'
uid = db.Column(db.Integer, ForeignKey('dualis.uid', ondelete='CASCADE'))
semestername = db.Column(db.String(25))
semesterid = db.Column(db.String(15))
itemid = db.Column(db.Integer, primary_key=True)
@ -73,6 +77,7 @@ class Rapla(db.Model):
"""
Datenbank-Modell für Rapla.
"""
__tablename__ = 'rapla'
name = db.Column(db.String(15), primary_key=True)
file = db.Column(db.String(20), unique=True)
link = db.Column(db.String(255), unique=True)
@ -82,6 +87,7 @@ class Meals(db.Model):
"""
Datenbank-Modell für Meals.
"""
__tablename__ = 'meals'
id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.Date)
name = db.Column(db.String(200))

View File

View File

@ -12,15 +12,9 @@ def app():
app.config.update({
"TESTING": True,
})
routing.init_routes(app)
# other setup can go here
yield app
# clean up / reset resources here
@pytest.fixture()
def client(app):
@ -42,7 +36,7 @@ def login(client):
return False
def tesst_login(client):
def test_login(client):
loginpage = client.get("/log-in", follow_redirects=True)
assert b"Einloggen" in loginpage.data
assert loginpage.status_code == 200
@ -56,7 +50,7 @@ def tesst_login(client):
assert len(cookie.value) == 32 # CNSC-Länge: 32 → Wenn der Cookie so lang ist, ist man erfolgreich eingeloggt.
def tesst_kurssetup(client):
def test_kurssetup(client):
if login(client):
kurspage = client.get("/set-up", follow_redirects=True)
assert kurspage.status_code == 200
@ -75,7 +69,7 @@ def tesst_kurssetup(client):
assert False
def tesst_semestersetup(client):
def test_semestersetup(client):
if login(client):
semesterpage = client.get("/set-up/semester", follow_redirects=True)
assert semesterpage.status_code == 200
@ -115,7 +109,7 @@ def test_noten(client):
assert False
def tesst_logout(client):
def test_logout(client):
if login(client):
loginpage = client.get("/log-out", follow_redirects=True)
assert loginpage.status_code == 200