diff --git a/fhost.py b/fhost.py index 4b9a683..8b31a39 100755 --- a/fhost.py +++ b/fhost.py @@ -80,15 +80,14 @@ app.config.update( URL_ALPHABET = "DEQhd2uFteibPwq0SWBInTpA_jcZL5GKz3YCR14Ulk87Jors9vNHgfaOmMXy6Vx-", ) -if not app.config["TESTING"]: - app.config.from_pyfile("config.py") - app.jinja_loader = ChoiceLoader([ - FileSystemLoader(str(Path(app.instance_path) / "templates")), - app.jinja_loader - ]) +app.config.from_pyfile("config.py") +app.jinja_loader = ChoiceLoader([ + FileSystemLoader(str(Path(app.instance_path) / "templates")), + app.jinja_loader +]) - if app.config["DEBUG"]: - app.config["FHOST_USE_X_ACCEL_REDIRECT"] = False +if app.config["DEBUG"]: + app.config["FHOST_USE_X_ACCEL_REDIRECT"] = False if app.config["NSFW_DETECT"]: from nsfw_detect import NSFWDetector diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_client.py b/tests/test_client.py deleted file mode 100644 index 0b29e00..0000000 --- a/tests/test_client.py +++ /dev/null @@ -1,81 +0,0 @@ -import pytest -import tempfile -import os -from flask_migrate import upgrade as db_upgrade -from io import BytesIO - -from fhost import app, db, url_for, File, URL - -@pytest.fixture -def client(): - with tempfile.TemporaryDirectory() as tmpdir: - app.config["SQLALCHEMY_DATABASE_URI"] = f"sqlite:///{tmpdir}/db.sqlite" - app.config["FHOST_STORAGE_PATH"] = os.path.join(tmpdir, "up") - app.config["TESTING"] = True - - with app.test_client() as client: - with app.app_context(): - db_upgrade() - yield client - -def test_client(client): - payloads = [ - ({ "file" : (BytesIO(b"hello"), "hello.txt") }, 200, b"https://localhost/E.txt\n"), - ({ "file" : (BytesIO(b"hello"), "hello.ignorethis") }, 200, b"https://localhost/E.txt\n"), - ({ "file" : (BytesIO(b"bye"), "bye.truncatethis") }, 200, b"https://localhost/Q.truncate\n"), - ({ "file" : (BytesIO(b"hi"), "hi.tar.gz") }, 200, b"https://localhost/h.tar.gz\n"), - ({ "file" : (BytesIO(b"lea!"), "lea!") }, 200, b"https://localhost/d.txt\n"), - ({ "file" : (BytesIO(b"why?"), "balls", "application/x-dosexec") }, 415, None), - ({ "shorten" : "https://0x0.st" }, 200, b"https://localhost/E\n"), - ({ "shorten" : "https://localhost" }, 400, None), - ({}, 400, None), - ] - - for p, s, r in payloads: - rv = client.post("/", buffered=True, - content_type="multipart/form-data", - data=p) - assert rv.status_code == s - if r: - assert rv.data == r - - f = File.query.get(2) - f.removed = True - db.session.add(f) - db.session.commit() - - rq = [ - (200, [ - "/", - "robots.txt", - "E.txt", - "E.txt/test", - "E.txt/test.py", - "d.txt", - "h.tar.gz", - ]), - (302, [ - "E", - ]), - (404, [ - "test.bin", - "test.bin/test", - "test.bin/test.py", - "test", - "test/test", - "test.bin/test.py", - "E.bin", - "E/test", - "E/test.bin", - ]), - (451, [ - "Q.truncate", - ]), - ] - - for code, paths in rq: - for p in paths: - app.logger.info(f"GET {p}") - rv = client.get(p) - assert rv.status_code == code -