From 6a1837762eed5c24ac048910882217102062214a Mon Sep 17 00:00:00 2001 From: Jack Case Date: Wed, 26 Nov 2025 16:19:14 +0000 Subject: [PATCH] move testing-related files to test submodule create scripts to load and dump the test database to and from SQL files --- .gitignore | 3 +++ slopserver/settings.py | 2 +- slopserver/test/__init__.py | 0 slopserver/test/backup_test_db.sh | 5 ++++ slopserver/test/create_test_db.sh | 5 ++++ slopserver/test/test_db.sql | 45 +++++++++++++++++++++++++++++++ 6 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 slopserver/test/__init__.py create mode 100755 slopserver/test/backup_test_db.sh create mode 100755 slopserver/test/create_test_db.sh create mode 100644 slopserver/test/test_db.sql diff --git a/.gitignore b/.gitignore index ebb2b63..0b0fd1c 100644 --- a/.gitignore +++ b/.gitignore @@ -214,4 +214,7 @@ __marimo__/ # Streamlit .streamlit/secrets.toml + + slopserver/server_config.env +test_db.sqlite diff --git a/slopserver/settings.py b/slopserver/settings.py index 041124b..4ba9598 100644 --- a/slopserver/settings.py +++ b/slopserver/settings.py @@ -2,7 +2,7 @@ from pydantic_settings import BaseSettings class ServerSettings(BaseSettings): - db_url: str = "sqlite+pysqlite:///test_db.sqlite" + db_url: str = "sqlite+pysqlite:///slopserver/test/test_db.sqlite" token_secret: str = "5bcc778a96b090c3ac1d587bb694a060eaf7bdb5832365f91d5078faf1fff210" altcha_secret: str = "0460de065912d0292df1e7422a5ed2dc362ed56d6bab64fe50b89957463061f3" resend_token: str = "re_NXpjzbqR_KgAbu72PKjYHcquX24WvnN3i" diff --git a/slopserver/test/__init__.py b/slopserver/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/slopserver/test/backup_test_db.sh b/slopserver/test/backup_test_db.sh new file mode 100755 index 0000000..b252907 --- /dev/null +++ b/slopserver/test/backup_test_db.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +test_dir=slopserver/test + +sqlite3 $test_dir/test_db.sqlite .dump > $1 \ No newline at end of file diff --git a/slopserver/test/create_test_db.sh b/slopserver/test/create_test_db.sh new file mode 100755 index 0000000..d2ac4be --- /dev/null +++ b/slopserver/test/create_test_db.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +test_dir=slopserver/test + +cat $test_dir/test_db.sql | sqlite3 $test_dir/test_db.sqlite \ No newline at end of file diff --git a/slopserver/test/test_db.sql b/slopserver/test/test_db.sql new file mode 100644 index 0000000..465466d --- /dev/null +++ b/slopserver/test/test_db.sql @@ -0,0 +1,45 @@ +PRAGMA foreign_keys=OFF; +BEGIN TRANSACTION; +CREATE TABLE domain ( + id INTEGER NOT NULL, + domain_name VARCHAR NOT NULL, + CONSTRAINT pk_domain PRIMARY KEY (id) +); +INSERT INTO domain VALUES(1,'google.com'); +INSERT INTO domain VALUES(2,'moogle.com'); +CREATE TABLE user ( + id INTEGER NOT NULL, + email VARCHAR NOT NULL, + password_hash VARCHAR NOT NULL, + email_verified BOOLEAN NOT NULL, + CONSTRAINT pk_user PRIMARY KEY (id) +); +INSERT INTO user VALUES(1,'alphauser01','$argon2id$v=19$m=65536,t=3,p=4$3z7uxa3NHl/dKG07RGEvBA$0NOBftJpP+HiR7wfgdwBk2UR9F12YBjrqeqLSyDl47o','True'); +CREATE TABLE path ( + id INTEGER NOT NULL, + path VARCHAR NOT NULL, + domain_id INTEGER, + CONSTRAINT pk_path PRIMARY KEY (id), + CONSTRAINT fk_path_domain_id_domain FOREIGN KEY(domain_id) REFERENCES domain (id) +); +INSERT INTO path VALUES(1,'/',0); +INSERT INTO path VALUES(2,'/path1',0); +INSERT INTO path VALUES(3,'/path2',1); +INSERT INTO path VALUES(4,'/path3/a',1); +INSERT INTO path VALUES(5,'/path4',1); +INSERT INTO path VALUES(6,'/path2',2); +INSERT INTO path VALUES(7,'/',2); +INSERT INTO path VALUES(8,'/path3',2); +INSERT INTO path VALUES(9,'/path4',2); +CREATE TABLE report ( + path_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + timestamp DATETIME, + CONSTRAINT pk_report PRIMARY KEY (path_id, user_id), + CONSTRAINT fk_report_path_id_path FOREIGN KEY(path_id) REFERENCES path (id), + CONSTRAINT fk_report_user_id_user FOREIGN KEY(user_id) REFERENCES user (id) +); +INSERT INTO report VALUES(2,1,'11-26-2025'); +CREATE UNIQUE INDEX ix_domain_domain_name ON domain (domain_name); +CREATE UNIQUE INDEX ix_user_email ON user (email); +COMMIT;