From 57b5b4ffab8b164d8dee3db742f62c2e58d0638c Mon Sep 17 00:00:00 2001 From: Paul Martin Date: Tue, 21 May 2024 15:46:46 +0200 Subject: [PATCH] Foreign Keys --- init.py | 10 ++++++++-- tests_examples/calendars/.init | 0 tests_examples/test_app.py | 14 ++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 tests_examples/calendars/.init diff --git a/init.py b/init.py index 4443af5..02d24d0 100644 --- a/init.py +++ b/init.py @@ -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)) diff --git a/tests_examples/calendars/.init b/tests_examples/calendars/.init new file mode 100644 index 0000000..e69de29 diff --git a/tests_examples/test_app.py b/tests_examples/test_app.py index 436cee3..d63b811 100644 --- a/tests_examples/test_app.py +++ b/tests_examples/test_app.py @@ -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