aboutsummaryrefslogtreecommitdiff
path: root/app/tests
diff options
context:
space:
mode:
Diffstat (limited to 'app/tests')
-rw-r--r--app/tests/test_homepage.py11
-rw-r--r--app/tests/utils.py29
2 files changed, 40 insertions, 0 deletions
diff --git a/app/tests/test_homepage.py b/app/tests/test_homepage.py
new file mode 100644
index 0000000..f0f6793
--- /dev/null
+++ b/app/tests/test_homepage.py
@@ -0,0 +1,11 @@
+import pytest
+from app import app
+from utils import client, recreate_db
+
+def test_homepage_ok(client):
+ """Start with a blank database."""
+
+ assert app.config["TESTING"]
+
+ rv = client.get("/")
+ assert b"No packages available" in rv.data
diff --git a/app/tests/utils.py b/app/tests/utils.py
new file mode 100644
index 0000000..214630e
--- /dev/null
+++ b/app/tests/utils.py
@@ -0,0 +1,29 @@
+import pytest
+from app import app
+from app.models import db, User
+from app.default_data import populate
+
+def clear_data(session):
+ meta = db.metadata
+ for table in reversed(meta.sorted_tables):
+ session.execute(f'ALTER TABLE "{table.name}" DISABLE TRIGGER ALL;')
+ session.execute(table.delete())
+ session.execute(f'ALTER TABLE "{table.name}" ENABLE TRIGGER ALL;')
+ #session.execute(table.delete())
+
+def recreate_db():
+ clear_data(db.session)
+ populate(db.session)
+ db.session.commit()
+
+@pytest.fixture
+def client():
+ app.config["TESTING"] = True
+
+ recreate_db()
+ assert User.query.count() == 1
+
+ with app.test_client() as client:
+ yield client
+
+ app.config["TESTING"] = False