mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2025-12-14 12:06:55 +00:00
* issue #4 Adding settings screen for apprise URLS * Adding test notification mechanism * Move Worker module to own class file * Adding basic notification URL runner * Tests for notifications * Tweak readme with notification info * Move notification test to main test_backend.py * Fix spacing * Adding notifications screenshot * Cleanup more files from test * Offer send notification test on individual edits and main/default * Process global notifications * All branches test * Wrap worker notification process in try/catch, use global if nothing set * Fix syntax * Handle exception, increase wait time for liveserver to come up * Fixing test setup * remove debug * Split tests into their own totally isolated setups, if you know a better way to make live_server() work, MR :) * Tidying up lint/imports
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
#!/usr/bin/python3
|
|
|
|
import pytest
|
|
from backend import changedetection_app
|
|
from backend import store
|
|
import os
|
|
|
|
|
|
# https://github.com/pallets/flask/blob/1.1.2/examples/tutorial/tests/test_auth.py
|
|
# Much better boilerplate than the docs
|
|
# https://www.python-boilerplate.com/py3+flask+pytest/
|
|
|
|
global app
|
|
|
|
@pytest.fixture(scope='session')
|
|
def app(request):
|
|
"""Create application for the tests."""
|
|
datastore_path = "./test-datastore"
|
|
|
|
try:
|
|
os.mkdir(datastore_path)
|
|
except FileExistsError:
|
|
pass
|
|
|
|
try:
|
|
os.unlink("{}/url-watches.json".format(datastore_path))
|
|
except FileNotFoundError:
|
|
pass
|
|
|
|
app_config = {'datastore_path': datastore_path}
|
|
datastore = store.ChangeDetectionStore(datastore_path=app_config['datastore_path'], include_default_watches=False)
|
|
app = changedetection_app(app_config, datastore)
|
|
app.config['STOP_THREADS'] = True
|
|
|
|
def teardown():
|
|
datastore.stop_thread = True
|
|
app.config.exit.set()
|
|
for fname in ["url-watches.json", "count.txt", "output.txt"]:
|
|
try:
|
|
os.unlink("{}/{}".format(datastore_path, fname))
|
|
except FileNotFoundError:
|
|
# This is fine in the case of a failure.
|
|
pass
|
|
|
|
request.addfinalizer(teardown)
|
|
yield app
|
|
|