From 2a91c1f8d12db2b7a3cf27205f5cda7d31473fdf Mon Sep 17 00:00:00 2001 From: dgtlmoon Date: Tue, 25 Mar 2025 09:27:09 +0100 Subject: [PATCH] Moving 'watchlist' to its own blueprint --- .../blueprint/imports/__init__.py | 2 +- .../blueprint/price_data_follower/__init__.py | 4 +-- .../blueprint/settings/__init__.py | 2 +- .../settings/templates/settings.html | 2 +- .../tags/templates/groups-overview.html | 2 +- changedetectionio/blueprint/ui/__init__.py | 18 +++++------ changedetectionio/blueprint/ui/edit.py | 8 ++--- .../ui/templates/clear_all_history.html | 2 +- changedetectionio/blueprint/ui/views.py | 10 +++---- changedetectionio/flask_app.py | 25 +++++----------- changedetectionio/templates/base.html | 2 +- .../proxy_list/test_select_custom_proxy.py | 2 +- .../tests/restock/test_restock.py | 6 ++-- .../tests/test_access_control.py | 4 +-- .../tests/test_add_replace_remove_filter.py | 12 ++++---- changedetectionio/tests/test_api.py | 2 +- .../test_automatic_follow_ldjson_price.py | 6 ++-- changedetectionio/tests/test_backend.py | 10 +++---- .../tests/test_block_while_text_present.py | 8 ++--- changedetectionio/tests/test_conditions.py | 4 +-- changedetectionio/tests/test_css_selector.py | 6 ++-- .../tests/test_element_removal.py | 2 +- changedetectionio/tests/test_errorhandling.py | 8 ++--- changedetectionio/tests/test_extract_regex.py | 6 ++-- .../tests/test_filter_failure_notification.py | 2 +- changedetectionio/tests/test_group.py | 12 ++++---- changedetectionio/tests/test_ignore_text.py | 12 ++++---- .../tests/test_ignorehyperlinks.py | 2 +- .../tests/test_ignorestatuscode.py | 4 +-- .../tests/test_ignorewhitespace.py | 2 +- changedetectionio/tests/test_import.py | 14 ++++----- changedetectionio/tests/test_jinja2.py | 2 +- .../tests/test_jsonpath_jq_selector.py | 10 +++---- .../tests/test_nonrenderable_pages.py | 8 ++--- changedetectionio/tests/test_notification.py | 2 +- .../tests/test_notification_errors.py | 2 +- changedetectionio/tests/test_pdf.py | 2 +- .../tests/test_preview_endpoints.py | 2 +- .../tests/test_restock_itemprop.py | 30 +++++++++---------- changedetectionio/tests/test_search.py | 8 ++--- changedetectionio/tests/test_security.py | 2 +- changedetectionio/tests/test_share_watch.py | 2 +- changedetectionio/tests/test_source.py | 2 +- changedetectionio/tests/test_trigger.py | 6 ++-- changedetectionio/tests/test_trigger_regex.py | 6 ++-- .../tests/test_trigger_regex_with_filter.py | 4 +-- changedetectionio/tests/test_unique_lines.py | 6 ++-- .../tests/test_xpath_selector.py | 10 +++---- changedetectionio/tests/util.py | 2 +- 49 files changed, 148 insertions(+), 159 deletions(-) diff --git a/changedetectionio/blueprint/imports/__init__.py b/changedetectionio/blueprint/imports/__init__.py index e0dd12bd..2e5fddf5 100644 --- a/changedetectionio/blueprint/imports/__init__.py +++ b/changedetectionio/blueprint/imports/__init__.py @@ -27,7 +27,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe update_q.put(queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid})) if len(importer_handler.remaining_data) == 0: - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) else: remaining_urls = importer_handler.remaining_data diff --git a/changedetectionio/blueprint/price_data_follower/__init__.py b/changedetectionio/blueprint/price_data_follower/__init__.py index 6011303a..99841d71 100644 --- a/changedetectionio/blueprint/price_data_follower/__init__.py +++ b/changedetectionio/blueprint/price_data_follower/__init__.py @@ -20,13 +20,13 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q: PriorityQueue datastore.data['watching'][uuid]['processor'] = 'restock_diff' datastore.data['watching'][uuid].clear_watch() update_q.put(queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid})) - return redirect(url_for("index")) + return redirect(url_for("watchlist.index")) @login_required @price_data_follower_blueprint.route("//reject", methods=['GET']) def reject(uuid): datastore.data['watching'][uuid]['track_ldjson_price_data'] = PRICE_DATA_TRACK_REJECT - return redirect(url_for("index")) + return redirect(url_for("watchlist.index")) return price_data_follower_blueprint diff --git a/changedetectionio/blueprint/settings/__init__.py b/changedetectionio/blueprint/settings/__init__.py index 2137487c..015cc274 100644 --- a/changedetectionio/blueprint/settings/__init__.py +++ b/changedetectionio/blueprint/settings/__init__.py @@ -74,7 +74,7 @@ def construct_blueprint(datastore: ChangeDetectionStore): datastore.needs_write_urgent = True flash("Password protection enabled.", 'notice') flask_login.logout_user() - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) datastore.needs_write_urgent = True flash("Settings updated.") diff --git a/changedetectionio/blueprint/settings/templates/settings.html b/changedetectionio/blueprint/settings/templates/settings.html index 2e651a01..65ce6c66 100644 --- a/changedetectionio/blueprint/settings/templates/settings.html +++ b/changedetectionio/blueprint/settings/templates/settings.html @@ -299,7 +299,7 @@ nav
{{ render_button(form.save_button) }} - Back + Back Clear Snapshot History
diff --git a/changedetectionio/blueprint/tags/templates/groups-overview.html b/changedetectionio/blueprint/tags/templates/groups-overview.html index 30ddfe18..b75762f5 100644 --- a/changedetectionio/blueprint/tags/templates/groups-overview.html +++ b/changedetectionio/blueprint/tags/templates/groups-overview.html @@ -47,7 +47,7 @@ Mute notifications {{ "{:,}".format(tag_count[uuid]) if uuid in tag_count else 0 }} - {{ tag.title }} + {{ tag.title }} Edit  Delete diff --git a/changedetectionio/blueprint/ui/__init__.py b/changedetectionio/blueprint/ui/__init__.py index 5dfffac5..973b95b7 100644 --- a/changedetectionio/blueprint/ui/__init__.py +++ b/changedetectionio/blueprint/ui/__init__.py @@ -36,7 +36,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat else: flash("Cleared snapshot history for watch {}".format(uuid)) - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) @ui_blueprint.route("/clear_history", methods=['GET', 'POST']) @login_optionally_required @@ -52,7 +52,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat else: flash('Incorrect confirmation text.', 'error') - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) output = render_template("clear_all_history.html") return output @@ -68,7 +68,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat continue datastore.set_last_viewed(watch_uuid, int(time.time())) - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) @ui_blueprint.route("/delete", methods=['GET']) @login_optionally_required @@ -77,7 +77,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat if uuid != 'all' and not uuid in datastore.data['watching'].keys(): flash('The watch by UUID {} does not exist.'.format(uuid), 'error') - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) # More for testing, possible to return the first/only if uuid == 'first': @@ -85,7 +85,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat datastore.delete(uuid) flash('Deleted.') - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) @ui_blueprint.route("/clone", methods=['GET']) @login_optionally_required @@ -101,7 +101,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat update_q.put(queuedWatchMetaData.PrioritizedItem(priority=5, item={'uuid': new_uuid})) flash('Cloned.') - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) @ui_blueprint.route("/checknow", methods=['GET']) @login_optionally_required @@ -143,7 +143,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat if i == 0: flash("No watches available to recheck.") - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) @ui_blueprint.route("/form/checkbox-operations", methods=['POST']) @login_optionally_required @@ -244,7 +244,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat flash(f"{len(uuids)} watches were tagged") - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) @ui_blueprint.route("/share-url/", methods=['GET']) @@ -296,6 +296,6 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, running_updat logger.error(f"Error sharing -{str(e)}") flash(f"Could not share, something went wrong while communicating with the share server - {str(e)}", 'error') - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) return ui_blueprint \ No newline at end of file diff --git a/changedetectionio/blueprint/ui/edit.py b/changedetectionio/blueprint/ui/edit.py index db1e8e55..d4bd51ab 100644 --- a/changedetectionio/blueprint/ui/edit.py +++ b/changedetectionio/blueprint/ui/edit.py @@ -32,14 +32,14 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe # More for testing, possible to return the first/only if not datastore.data['watching'].keys(): flash("No watches to edit", "error") - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) if uuid == 'first': uuid = list(datastore.data['watching'].keys()).pop() if not uuid in datastore.data['watching']: flash("No watch with the UUID %s found." % (uuid), "error") - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) switch_processor = request.args.get('switch_processor') if switch_processor: @@ -66,7 +66,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe processor_classes = next((tpl for tpl in processors.find_processors() if tpl[1] == processor_name), None) if not processor_classes: flash(f"Cannot load the edit form for processor/plugin '{processor_classes[1]}', plugin missing?", 'error') - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) parent_module = processors.get_parent_module(processor_classes[0]) @@ -207,7 +207,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe if request.args.get("next") and request.args.get("next") == 'diff': return redirect(url_for('ui.ui_views.diff_history_page', uuid=uuid)) - return redirect(url_for('index', tag=request.args.get("tag",''))) + return redirect(url_for('watchlist.index', tag=request.args.get("tag",''))) else: if request.method == 'POST' and not form.validate(): diff --git a/changedetectionio/blueprint/ui/templates/clear_all_history.html b/changedetectionio/blueprint/ui/templates/clear_all_history.html index fbbaa34f..bcb57190 100644 --- a/changedetectionio/blueprint/ui/templates/clear_all_history.html +++ b/changedetectionio/blueprint/ui/templates/clear_all_history.html @@ -37,7 +37,7 @@
- Cancel
diff --git a/changedetectionio/blueprint/ui/views.py b/changedetectionio/blueprint/ui/views.py index 903a4c77..15524e58 100644 --- a/changedetectionio/blueprint/ui/views.py +++ b/changedetectionio/blueprint/ui/views.py @@ -26,7 +26,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe watch = datastore.data['watching'][uuid] except KeyError: flash("No history found for the specified link, bad link?", "error") - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) system_uses_webdriver = datastore.data['settings']['application']['fetch_backend'] == 'html_webdriver' extra_stylesheets = [url_for('static_content', group='styles', filename='diff.css')] @@ -91,7 +91,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe watch = datastore.data['watching'][uuid] except KeyError: flash("No history found for the specified link, bad link?", "error") - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) # For submission of requesting an extract extract_form = forms.extractDataForm(request.form) @@ -119,7 +119,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe if len(dates) < 2: flash("Not enough saved change detection snapshots to produce a report.", "error") - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) # Save the current newest history as the most recently viewed datastore.set_last_viewed(uuid, time.time()) @@ -196,7 +196,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe if not form.validate(): for widget, l in form.errors.items(): flash(','.join(l), 'error') - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) url = request.form.get('url').strip() if datastore.url_exists(url): @@ -215,6 +215,6 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe update_q.put(queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': new_uuid})) flash("Watch added.") - return redirect(url_for('index', tag=request.args.get('tag',''))) + return redirect(url_for('watchlist.index', tag=request.args.get('tag',''))) return views_blueprint \ No newline at end of file diff --git a/changedetectionio/flask_app.py b/changedetectionio/flask_app.py index da7dc796..41ef9d7e 100644 --- a/changedetectionio/flask_app.py +++ b/changedetectionio/flask_app.py @@ -287,12 +287,12 @@ def changedetection_app(config=None, datastore_o=None): @login_manager.unauthorized_handler def unauthorized_handler(): flash("You must be logged in, please log in.", 'error') - return redirect(url_for('login', next=url_for('index'))) + return redirect(url_for('login', next=url_for('watchlist.index'))) @app.route('/logout') def logout(): flask_login.logout_user() - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) # https://github.com/pallets/flask/blob/93dd1709d05a1cf0e886df6223377bdab3b077fb/examples/tutorial/flaskr/__init__.py#L39 # You can divide up the stuff like this @@ -302,7 +302,7 @@ def changedetection_app(config=None, datastore_o=None): if request.method == 'GET': if flask_login.current_user.is_authenticated: flash("Already logged in") - return redirect(url_for("index")) + return redirect(url_for("watchlist.index")) output = render_template("login.html") return output @@ -319,13 +319,13 @@ def changedetection_app(config=None, datastore_o=None): # It's more reliable and safe to ignore the 'next' redirect # When we used... # next = request.args.get('next') - # return redirect(next or url_for('index')) + # return redirect(next or url_for('watchlist.index')) # We would sometimes get login loop errors on sites hosted in sub-paths # note for the future: # if not is_safe_url(next): # return flask.abort(400) - return redirect(url_for('index')) + return redirect(url_for('watchlist.index')) else: flash('Incorrect password', 'error') @@ -338,19 +338,8 @@ def changedetection_app(config=None, datastore_o=None): if os.getenv('USE_X_SETTINGS') and 'X-Forwarded-Prefix' in request.headers: app.config['REMEMBER_COOKIE_PATH'] = request.headers['X-Forwarded-Prefix'] app.config['SESSION_COOKIE_PATH'] = request.headers['X-Forwarded-Prefix'] - return None - - # Root route redirects to watchlist blueprint - @app.route("/", methods=['GET']) - @login_optionally_required - def index(): - # Get all query string parameters - args = request.args.copy() - # Redirect to watchlist blueprint, keeping all query parameters - return redirect(url_for('watchlist.index', **args)) - @app.route("/static//", methods=['GET']) def static_content(group, filename): from flask import make_response @@ -439,12 +428,12 @@ def changedetection_app(config=None, datastore_o=None): import changedetectionio.blueprint.rss as rss app.register_blueprint(rss.construct_blueprint(datastore), url_prefix='/rss') - + # watchlist UI buttons etc import changedetectionio.blueprint.ui as ui app.register_blueprint(ui.construct_blueprint(datastore, update_q, running_update_threads, queuedWatchMetaData)) import changedetectionio.blueprint.watchlist as watchlist - app.register_blueprint(watchlist.construct_blueprint(datastore, update_q, queuedWatchMetaData), url_prefix='') + app.register_blueprint(watchlist.construct_blueprint(datastore=datastore, update_q=update_q, queuedWatchMetaData=queuedWatchMetaData), url_prefix='') # @todo handle ctrl break ticker_thread = threading.Thread(target=ticker_thread_check_time_launch_checks).start() diff --git a/changedetectionio/templates/base.html b/changedetectionio/templates/base.html index 22fa3ccf..78e93b66 100644 --- a/changedetectionio/templates/base.html +++ b/changedetectionio/templates/base.html @@ -42,7 +42,7 @@ ChangeDetection.io {% else %} - + ChangeDetection.io {% endif %} {% if current_diff_url %} diff --git a/changedetectionio/tests/proxy_list/test_select_custom_proxy.py b/changedetectionio/tests/proxy_list/test_select_custom_proxy.py index 01f8b4b7..e35c3718 100644 --- a/changedetectionio/tests/proxy_list/test_select_custom_proxy.py +++ b/changedetectionio/tests/proxy_list/test_select_custom_proxy.py @@ -36,7 +36,7 @@ def test_select_custom(client, live_server, measure_memory_usage): assert b"1 Imported" in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'Proxy Authentication Required' not in res.data res = client.get( diff --git a/changedetectionio/tests/restock/test_restock.py b/changedetectionio/tests/restock/test_restock.py index 322b3210..904209ea 100644 --- a/changedetectionio/tests/restock/test_restock.py +++ b/changedetectionio/tests/restock/test_restock.py @@ -83,14 +83,14 @@ def test_restock_detection(client, live_server, measure_memory_usage): # Is it correctly show as NOT in stock? wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'not-in-stock' in res.data # Is it correctly shown as in stock set_back_in_stock_response() client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'not-in-stock' not in res.data # We should have a notification @@ -107,6 +107,6 @@ def test_restock_detection(client, live_server, measure_memory_usage): assert not os.path.isfile("test-datastore/notification.txt"), "No notification should have fired when it went OUT OF STOCK by default" # BUT we should see that it correctly shows "not in stock" - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'not-in-stock' in res.data, "Correctly showing NOT IN STOCK in the list after it changed from IN STOCK" diff --git a/changedetectionio/tests/test_access_control.py b/changedetectionio/tests/test_access_control.py index 113e96f3..b4d82bc0 100644 --- a/changedetectionio/tests/test_access_control.py +++ b/changedetectionio/tests/test_access_control.py @@ -44,7 +44,7 @@ def test_check_access_control(app, client, live_server): assert b"Password protection enabled." in res.data # Check we hit the login - res = c.get(url_for("index"), follow_redirects=True) + res = c.get(url_for("watchlist.index"), follow_redirects=True) # Should be logged out assert b"Login" in res.data @@ -164,7 +164,7 @@ def test_check_access_control(app, client, live_server): assert b"Password protection enabled." in res.data # Check we hit the login - res = c.get(url_for("index"), follow_redirects=True) + res = c.get(url_for("watchlist.index"), follow_redirects=True) # Should be logged out assert b"Login" in res.data diff --git a/changedetectionio/tests/test_add_replace_remove_filter.py b/changedetectionio/tests/test_add_replace_remove_filter.py index e697a9b9..62074e42 100644 --- a/changedetectionio/tests/test_add_replace_remove_filter.py +++ b/changedetectionio/tests/test_add_replace_remove_filter.py @@ -72,7 +72,7 @@ def test_check_removed_line_contains_trigger(client, live_server, measure_memory res = client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) assert b'Queued 1 watch for rechecking.' in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data # The trigger line is REMOVED, this should trigger @@ -81,7 +81,7 @@ def test_check_removed_line_contains_trigger(client, live_server, measure_memory # Check in the processor here what's going on, its triggering empty-reply and no change. client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data @@ -90,14 +90,14 @@ def test_check_removed_line_contains_trigger(client, live_server, measure_memory set_original(excluding=None) client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data # Remove it again, and we should get a trigger set_original(excluding='The golden line') client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) @@ -157,14 +157,14 @@ def test_check_add_line_contains_trigger(client, live_server, measure_memory_usa assert b'Queued 1 watch for rechecking.' in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data # The trigger line is ADDED, this should trigger set_original(add_line='

Oh yes please

') client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data diff --git a/changedetectionio/tests/test_api.py b/changedetectionio/tests/test_api.py index d57d5bac..7703f42c 100644 --- a/changedetectionio/tests/test_api.py +++ b/changedetectionio/tests/test_api.py @@ -383,7 +383,7 @@ def test_api_import(client, live_server, measure_memory_usage): assert res.status_code == 200 assert len(res.json) == 2 - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b"https://website1.com" in res.data assert b"https://website2.com" in res.data diff --git a/changedetectionio/tests/test_automatic_follow_ldjson_price.py b/changedetectionio/tests/test_automatic_follow_ldjson_price.py index 1996e72c..f1908053 100644 --- a/changedetectionio/tests/test_automatic_follow_ldjson_price.py +++ b/changedetectionio/tests/test_automatic_follow_ldjson_price.py @@ -95,7 +95,7 @@ def test_check_ldjson_price_autodetect(client, live_server, measure_memory_usage wait_for_all_checks(client) # Should get a notice that it's available - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'ldjson-price-track-offer' in res.data # Accept it @@ -105,7 +105,7 @@ def test_check_ldjson_price_autodetect(client, live_server, measure_memory_usage client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) # Offer should be gone - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'Embedded price data' not in res.data assert b'tracking-ldjson-price-data' in res.data @@ -136,7 +136,7 @@ def test_check_ldjson_price_autodetect(client, live_server, measure_memory_usage ) assert b"1 Imported" in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'ldjson-price-track-offer' not in res.data ########################################################################################## diff --git a/changedetectionio/tests/test_backend.py b/changedetectionio/tests/test_backend.py index 37a5c7ec..b67bd179 100644 --- a/changedetectionio/tests/test_backend.py +++ b/changedetectionio/tests/test_backend.py @@ -39,7 +39,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'test-endpoint' in res.data @@ -75,7 +75,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure assert b'which has this one new line' in res.data # Now something should be ready, indicated by having a 'unviewed' class - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # #75, and it should be in the RSS feed @@ -112,7 +112,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'Mark all viewed' not in res.data assert b'head title' not in res.data # Should not be present because this is off by default @@ -131,7 +131,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data assert b'Mark all viewed' in res.data @@ -151,7 +151,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure client.get(url_for("ui.clear_watch_history", uuid=uuid)) client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'preview/' in res.data # diff --git a/changedetectionio/tests/test_block_while_text_present.py b/changedetectionio/tests/test_block_while_text_present.py index 8306861c..473f5645 100644 --- a/changedetectionio/tests/test_block_while_text_present.py +++ b/changedetectionio/tests/test_block_while_text_present.py @@ -107,7 +107,7 @@ def test_check_block_changedetection_text_NOT_present(client, live_server, measu wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data @@ -120,7 +120,7 @@ def test_check_block_changedetection_text_NOT_present(client, live_server, measu wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data @@ -129,7 +129,7 @@ def test_check_block_changedetection_text_NOT_present(client, live_server, measu set_original_ignore_response() client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data @@ -137,7 +137,7 @@ def test_check_block_changedetection_text_NOT_present(client, live_server, measu set_modified_response_minus_block_text() client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data diff --git a/changedetectionio/tests/test_conditions.py b/changedetectionio/tests/test_conditions.py index 25f3a276..b14a98d9 100644 --- a/changedetectionio/tests/test_conditions.py +++ b/changedetectionio/tests/test_conditions.py @@ -114,7 +114,7 @@ def test_conditions_with_text_and_number(client, live_server): wait_for_all_checks(client) # 75 is > 20 and < 100 and contains "5" - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data @@ -128,7 +128,7 @@ def test_conditions_with_text_and_number(client, live_server): wait_for_all_checks(client) # Should NOT be marked as having changes since not all conditions are met - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) diff --git a/changedetectionio/tests/test_css_selector.py b/changedetectionio/tests/test_css_selector.py index 91b6caa3..545d97f0 100644 --- a/changedetectionio/tests/test_css_selector.py +++ b/changedetectionio/tests/test_css_selector.py @@ -119,7 +119,7 @@ def test_check_markup_include_filters_restriction(client, live_server, measure_m # It should have 'unviewed' still # Because it should be looking at only that 'sametext' id - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data @@ -218,7 +218,7 @@ def test_filter_is_empty_help_suggestion(client, live_server, measure_memory_usa res = client.get( - url_for("index"), + url_for("watchlist.index"), follow_redirects=True ) @@ -240,7 +240,7 @@ def test_filter_is_empty_help_suggestion(client, live_server, measure_memory_usa wait_for_all_checks(client) res = client.get( - url_for("index"), + url_for("watchlist.index"), follow_redirects=True ) diff --git a/changedetectionio/tests/test_element_removal.py b/changedetectionio/tests/test_element_removal.py index c0330843..b4a31079 100644 --- a/changedetectionio/tests/test_element_removal.py +++ b/changedetectionio/tests/test_element_removal.py @@ -204,7 +204,7 @@ def test_element_removal_full(client, live_server, measure_memory_usage): wait_for_all_checks(client) # There should not be an unviewed change, as changes should be removed - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b"unviewed" not in res.data # Re #2752 diff --git a/changedetectionio/tests/test_errorhandling.py b/changedetectionio/tests/test_errorhandling.py index a7412e3a..0717f611 100644 --- a/changedetectionio/tests/test_errorhandling.py +++ b/changedetectionio/tests/test_errorhandling.py @@ -32,7 +32,7 @@ def _runner_test_http_errors(client, live_server, http_code, expected_text): # Give the thread time to pick it up wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) # no change assert b'unviewed' not in res.data assert bytes(expected_text.encode('utf-8')) in res.data @@ -78,7 +78,7 @@ def test_DNS_errors(client, live_server, measure_memory_usage): # Give the thread time to pick it up wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) found_name_resolution_error = b"Temporary failure in name resolution" in res.data or b"Name or service not known" in res.data assert found_name_resolution_error # Should always record that we tried @@ -107,7 +107,7 @@ def test_low_level_errors_clear_correctly(client, live_server, measure_memory_us wait_for_all_checks(client) # We should see the DNS error - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) found_name_resolution_error = b"Temporary failure in name resolution" in res.data or b"Name or service not known" in res.data assert found_name_resolution_error @@ -122,7 +122,7 @@ def test_low_level_errors_clear_correctly(client, live_server, measure_memory_us # Now the error should be gone wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) found_name_resolution_error = b"Temporary failure in name resolution" in res.data or b"Name or service not known" in res.data assert not found_name_resolution_error diff --git a/changedetectionio/tests/test_extract_regex.py b/changedetectionio/tests/test_extract_regex.py index ec1dd61c..68155ff1 100644 --- a/changedetectionio/tests/test_extract_regex.py +++ b/changedetectionio/tests/test_extract_regex.py @@ -103,7 +103,7 @@ def test_check_filter_multiline(client, live_server, measure_memory_usage): assert b"Updated watch." in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) # Issue 1828 assert b'not at the start of the expression' not in res.data @@ -160,7 +160,7 @@ def test_check_filter_and_regex_extract(client, live_server, measure_memory_usag # Give the thread time to pick it up wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) #issue 1828 assert b'not at the start of the expression' not in res.data @@ -174,7 +174,7 @@ def test_check_filter_and_regex_extract(client, live_server, measure_memory_usag # It should have 'unviewed' still # Because it should be looking at only that 'sametext' id - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # Check HTML conversion detected and workd diff --git a/changedetectionio/tests/test_filter_failure_notification.py b/changedetectionio/tests/test_filter_failure_notification.py index e26a4d95..fcb13d88 100644 --- a/changedetectionio/tests/test_filter_failure_notification.py +++ b/changedetectionio/tests/test_filter_failure_notification.py @@ -113,7 +113,7 @@ def run_filter_test(client, live_server, content_filter): checked += 1 client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'Warning, no filters were found' in res.data assert not os.path.isfile("test-datastore/notification.txt") time.sleep(1) diff --git a/changedetectionio/tests/test_group.py b/changedetectionio/tests/test_group.py index 4d0a0ae1..056b55ac 100644 --- a/changedetectionio/tests/test_group.py +++ b/changedetectionio/tests/test_group.py @@ -77,7 +77,7 @@ def test_setup_group_tag(client, live_server, measure_memory_usage): ) assert b"1 Imported" in res.data - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'import-tag' in res.data assert b'extra-import-tag' in res.data @@ -90,7 +90,7 @@ def test_setup_group_tag(client, live_server, measure_memory_usage): wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'Warning, no filters were found' not in res.data res = client.get( @@ -255,7 +255,7 @@ def test_limit_tag_ui(client, live_server, measure_memory_usage): assert b"40 Imported" in res.data - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'test-tag' in res.data # All should be here @@ -263,7 +263,7 @@ def test_limit_tag_ui(client, live_server, measure_memory_usage): tag_uuid = get_UUID_for_tag_name(client, name="test-tag") - res = client.get(url_for("index", tag=tag_uuid)) + res = client.get(url_for("watchlist.index", tag=tag_uuid)) # Just a subset should be here assert b'test-tag' in res.data @@ -284,7 +284,7 @@ def test_clone_tag_on_import(client, live_server, measure_memory_usage): assert b"1 Imported" in res.data - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'test-tag' in res.data assert b'another-tag' in res.data @@ -311,7 +311,7 @@ def test_clone_tag_on_quickwatchform_add(client, live_server, measure_memory_usa assert b"Watch added" in res.data - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'test-tag' in res.data assert b'another-tag' in res.data diff --git a/changedetectionio/tests/test_ignore_text.py b/changedetectionio/tests/test_ignore_text.py index 3108101b..3262085a 100644 --- a/changedetectionio/tests/test_ignore_text.py +++ b/changedetectionio/tests/test_ignore_text.py @@ -127,7 +127,7 @@ def test_check_ignore_text_functionality(client, live_server, measure_memory_usa wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data @@ -140,7 +140,7 @@ def test_check_ignore_text_functionality(client, live_server, measure_memory_usa wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data @@ -151,7 +151,7 @@ def test_check_ignore_text_functionality(client, live_server, measure_memory_usa client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data res = client.get(url_for("ui.ui_views.preview_page", uuid="first")) @@ -214,7 +214,7 @@ def test_check_global_ignore_text_functionality(client, live_server, measure_mem client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class), adding random ignore text should not cause a change - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data ##### @@ -229,7 +229,7 @@ def test_check_global_ignore_text_functionality(client, live_server, measure_mem wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data @@ -238,7 +238,7 @@ def test_check_global_ignore_text_functionality(client, live_server, measure_mem set_modified_original_ignore_response() client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) diff --git a/changedetectionio/tests/test_ignorehyperlinks.py b/changedetectionio/tests/test_ignorehyperlinks.py index 250f4c6e..2b9009bf 100644 --- a/changedetectionio/tests/test_ignorehyperlinks.py +++ b/changedetectionio/tests/test_ignorehyperlinks.py @@ -114,7 +114,7 @@ def test_render_anchor_tag_content_true(client, live_server, measure_memory_usag # since the link has changed, and we chose to render anchor tag content, # we should detect a change (new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b"unviewed" in res.data assert b"/test-endpoint" in res.data diff --git a/changedetectionio/tests/test_ignorestatuscode.py b/changedetectionio/tests/test_ignorestatuscode.py index a1247c57..cac971be 100644 --- a/changedetectionio/tests/test_ignorestatuscode.py +++ b/changedetectionio/tests/test_ignorestatuscode.py @@ -79,7 +79,7 @@ def test_normal_page_check_works_with_ignore_status_code(client, live_server, me wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data assert b'/test-endpoint' in res.data @@ -127,6 +127,6 @@ def test_403_page_check_works_with_ignore_status_code(client, live_server, measu # It should have 'unviewed' still # Because it should be looking at only that 'sametext' id - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data diff --git a/changedetectionio/tests/test_ignorewhitespace.py b/changedetectionio/tests/test_ignorewhitespace.py index 4bab17fb..fe97d6ca 100644 --- a/changedetectionio/tests/test_ignorewhitespace.py +++ b/changedetectionio/tests/test_ignorewhitespace.py @@ -91,6 +91,6 @@ def test_check_ignore_whitespace(client, live_server, measure_memory_usage): time.sleep(sleep_time_for_fetch_thread) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data diff --git a/changedetectionio/tests/test_import.py b/changedetectionio/tests/test_import.py index 2544eba6..26cc6888 100644 --- a/changedetectionio/tests/test_import.py +++ b/changedetectionio/tests/test_import.py @@ -31,8 +31,8 @@ https://example.com tag1, other tag""" res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) # Clear flask alerts - res = client.get( url_for("index")) - res = client.get( url_for("index")) + res = client.get( url_for("watchlist.index")) + res = client.get( url_for("watchlist.index")) def xtest_import_skip_url(client, live_server, measure_memory_usage): @@ -55,7 +55,7 @@ def xtest_import_skip_url(client, live_server, measure_memory_usage): assert b"1 Skipped" in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) # Clear flask alerts - res = client.get( url_for("index")) + res = client.get( url_for("watchlist.index")) def test_import_distillio(client, live_server, measure_memory_usage): @@ -113,7 +113,7 @@ def test_import_distillio(client, live_server, measure_memory_usage): assert b"xpath:(//div[@id='App']/div[contains(@class,'flex')]/main[contains(@class,'relative')]/section[contains(@class,'relative')]/div[@class='container']/div[contains(@class,'flex')]/div[contains(@class,'w-full')])[1]" in res.data # did the tags work? - res = client.get( url_for("index")) + res = client.get( url_for("watchlist.index")) # check tags assert b"nice stuff" in res.data @@ -121,7 +121,7 @@ def test_import_distillio(client, live_server, measure_memory_usage): res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) # Clear flask alerts - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) def test_import_custom_xlsx(client, live_server, measure_memory_usage): """Test can upload a excel spreadsheet and the watches are created correctly""" @@ -156,7 +156,7 @@ def test_import_custom_xlsx(client, live_server, measure_memory_usage): assert b'Error processing row number 1' in res.data res = client.get( - url_for("index") + url_for("watchlist.index") ) assert b'Somesite results ABC' in res.data @@ -194,7 +194,7 @@ def test_import_watchete_xlsx(client, live_server, measure_memory_usage): assert b'4 imported from Wachete .xlsx' in res.data res = client.get( - url_for("index") + url_for("watchlist.index") ) assert b'Somesite results ABC' in res.data diff --git a/changedetectionio/tests/test_jinja2.py b/changedetectionio/tests/test_jinja2.py index 345d99c0..ca06b467 100644 --- a/changedetectionio/tests/test_jinja2.py +++ b/changedetectionio/tests/test_jinja2.py @@ -52,7 +52,7 @@ def test_jinja2_security_url_query(client, live_server, measure_memory_usage): wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'is invalid and cannot be used' in res.data # Some of the spewed output from the subclasses assert b'dict_values' not in res.data diff --git a/changedetectionio/tests/test_jsonpath_jq_selector.py b/changedetectionio/tests/test_jsonpath_jq_selector.py index 3d7d4172..7f22ea03 100644 --- a/changedetectionio/tests/test_jsonpath_jq_selector.py +++ b/changedetectionio/tests/test_jsonpath_jq_selector.py @@ -281,7 +281,7 @@ def check_json_filter(json_filter, client, live_server): wait_for_all_checks(client) # It should have 'unviewed' still - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # Should not see this, because its not in the JSONPath we entered @@ -417,7 +417,7 @@ def check_json_ext_filter(json_filter, client, live_server): wait_for_all_checks(client) # It should have 'unviewed' - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data res = client.get(url_for("ui.ui_views.diff_history_page", uuid="first")) @@ -455,7 +455,7 @@ def test_ignore_json_order(client, live_server, measure_memory_usage): client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data # Just to be sure it still works @@ -466,7 +466,7 @@ def test_ignore_json_order(client, live_server, measure_memory_usage): client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) @@ -488,7 +488,7 @@ def test_correct_header_detect(client, live_server, measure_memory_usage): ) assert b"1 Imported" in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) # Fixed in #1593 assert b'No parsable JSON found in this document' not in res.data diff --git a/changedetectionio/tests/test_nonrenderable_pages.py b/changedetectionio/tests/test_nonrenderable_pages.py index c95feb5a..8cfae54e 100644 --- a/changedetectionio/tests/test_nonrenderable_pages.py +++ b/changedetectionio/tests/test_nonrenderable_pages.py @@ -41,7 +41,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data @@ -63,7 +63,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data uuid = next(iter(live_server.app.config['DATASTORE'].data['watching'])) @@ -93,7 +93,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data client.get(url_for("ui.mark_all_viewed"), follow_redirects=True) @@ -105,7 +105,7 @@ def test_check_basic_change_detection_functionality(client, live_server, measure assert watch.last_changed == watch['last_checked'] wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # A change should have registered because empty_pages_are_a_change is ON assert b'fetch-error' not in res.data diff --git a/changedetectionio/tests/test_notification.py b/changedetectionio/tests/test_notification.py index 8be5513d..0a734f0c 100644 --- a/changedetectionio/tests/test_notification.py +++ b/changedetectionio/tests/test_notification.py @@ -139,7 +139,7 @@ def test_check_notification(client, live_server, measure_memory_usage): time.sleep(3) # Check no errors were recorded - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'notification-error' not in res.data diff --git a/changedetectionio/tests/test_notification_errors.py b/changedetectionio/tests/test_notification_errors.py index d8038682..28f503b3 100644 --- a/changedetectionio/tests/test_notification_errors.py +++ b/changedetectionio/tests/test_notification_errors.py @@ -46,7 +46,7 @@ def test_check_notification_error_handling(client, live_server, measure_memory_u logging.debug("Fetching watch overview....") res = client.get( - url_for("index")) + url_for("watchlist.index")) if bytes("Notification error detected".encode('utf-8')) in res.data: found=True diff --git a/changedetectionio/tests/test_pdf.py b/changedetectionio/tests/test_pdf.py index 2b2f6a8d..7dc32b5b 100644 --- a/changedetectionio/tests/test_pdf.py +++ b/changedetectionio/tests/test_pdf.py @@ -50,7 +50,7 @@ def test_fetch_pdf(client, live_server, measure_memory_usage): wait_for_all_checks(client) # Now something should be ready, indicated by having a 'unviewed' class - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # The original checksum should be not be here anymore (cdio adds it to the bottom of the text) diff --git a/changedetectionio/tests/test_preview_endpoints.py b/changedetectionio/tests/test_preview_endpoints.py index 158db3c8..3cb23b7c 100644 --- a/changedetectionio/tests/test_preview_endpoints.py +++ b/changedetectionio/tests/test_preview_endpoints.py @@ -48,7 +48,7 @@ def test_fetch_pdf(client, live_server, measure_memory_usage): wait_for_all_checks(client) # Now something should be ready, indicated by having a 'unviewed' class - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # The original checksum should be not be here anymore (cdio adds it to the bottom of the text) diff --git a/changedetectionio/tests/test_restock_itemprop.py b/changedetectionio/tests/test_restock_itemprop.py index f5e852f4..73454cd8 100644 --- a/changedetectionio/tests/test_restock_itemprop.py +++ b/changedetectionio/tests/test_restock_itemprop.py @@ -64,7 +64,7 @@ def test_restock_itemprop_basic(client, live_server): follow_redirects=True ) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'more than one price detected' not in res.data assert b'has-restock-info' in res.data assert b' in-stock' in res.data @@ -81,7 +81,7 @@ def test_restock_itemprop_basic(client, live_server): follow_redirects=True ) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'has-restock-info not-in-stock' in res.data @@ -103,14 +103,14 @@ def test_itemprop_price_change(client, live_server): # A change in price, should trigger a change by default wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'190.95' in res.data # basic price change, look for notification set_original_response(props_markup=instock_props[0], price='180.45') client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'180.45' in res.data assert b'unviewed' in res.data client.get(url_for("ui.mark_all_viewed"), follow_redirects=True) @@ -125,7 +125,7 @@ def test_itemprop_price_change(client, live_server): assert b"Updated watch." in res.data client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'120.45' in res.data assert b'unviewed' not in res.data @@ -170,7 +170,7 @@ def _run_test_minmax_limit(client, extra_watch_edit_form): set_original_response(props_markup=instock_props[0], price='1000.45') client.get(url_for("ui.form_watch_checknow")) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'more than one price detected' not in res.data # BUT the new price should show, even tho its within limits @@ -183,7 +183,7 @@ def _run_test_minmax_limit(client, extra_watch_edit_form): res = client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) assert b'Queued 1 watch for rechecking.' in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'890.45' in res.data assert b'unviewed' in res.data @@ -195,7 +195,7 @@ def _run_test_minmax_limit(client, extra_watch_edit_form): res = client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) assert b'Queued 1 watch for rechecking.' in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'820.45' in res.data assert b'unviewed' in res.data client.get(url_for("ui.mark_all_viewed")) @@ -204,7 +204,7 @@ def _run_test_minmax_limit(client, extra_watch_edit_form): set_original_response(props_markup=instock_props[0], price='1890.45') client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) # Depending on the LOCALE it may be either of these (generally for US/default/etc) assert b'1,890.45' in res.data or b'1890.45' in res.data assert b'unviewed' in res.data @@ -288,7 +288,7 @@ def test_itemprop_percent_threshold(client, live_server): set_original_response(props_markup=instock_props[0], price='960.45') client.get(url_for("ui.form_watch_checknow")) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'960.45' in res.data assert b'unviewed' not in res.data @@ -296,7 +296,7 @@ def test_itemprop_percent_threshold(client, live_server): set_original_response(props_markup=instock_props[0], price='1960.45') client.get(url_for("ui.form_watch_checknow")) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'1,960.45' or b'1960.45' in res.data #depending on locale assert b'unviewed' in res.data @@ -306,7 +306,7 @@ def test_itemprop_percent_threshold(client, live_server): set_original_response(props_markup=instock_props[0], price='1950.45') client.get(url_for("ui.form_watch_checknow")) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'1,950.45' or b'1950.45' in res.data #depending on locale assert b'unviewed' not in res.data @@ -403,7 +403,7 @@ def test_data_sanity(client, live_server): wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'950.95' in res.data # Check the restock model object doesnt store the value by mistake and used in a new one @@ -413,7 +413,7 @@ def test_data_sanity(client, live_server): follow_redirects=True ) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert str(res.data.decode()).count("950.95") == 1, "Price should only show once (for the watch added, no other watches yet)" ## different test, check the edit page works on an empty request result @@ -455,6 +455,6 @@ def test_special_prop_examples(client, live_server): follow_redirects=True ) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'ception' not in res.data assert b'155.55' in res.data diff --git a/changedetectionio/tests/test_search.py b/changedetectionio/tests/test_search.py index 92dd9849..1668eaab 100644 --- a/changedetectionio/tests/test_search.py +++ b/changedetectionio/tests/test_search.py @@ -20,7 +20,7 @@ def test_basic_search(client, live_server, measure_memory_usage): assert b"2 Imported" in res.data # By URL - res = client.get(url_for("index") + "?q=first-res") + res = client.get(url_for("watchlist.index") + "?q=first-res") assert urls[0].encode('utf-8') in res.data assert urls[1].encode('utf-8') not in res.data @@ -33,7 +33,7 @@ def test_basic_search(client, live_server, measure_memory_usage): ) assert b"Updated watch." in res.data - res = client.get(url_for("index") + "?q=xxx-title") + res = client.get(url_for("watchlist.index") + "?q=xxx-title") assert urls[0].encode('utf-8') in res.data assert urls[1].encode('utf-8') not in res.data @@ -54,7 +54,7 @@ def test_search_in_tag_limit(client, live_server, measure_memory_usage): # By URL - res = client.get(url_for("index") + "?q=first-res") + res = client.get(url_for("watchlist.index") + "?q=first-res") # Split because of the import tag separation assert urls[0].split(' ')[0].encode('utf-8') in res.data, urls[0].encode('utf-8') assert urls[1].split(' ')[0].encode('utf-8') not in res.data, urls[0].encode('utf-8') @@ -68,7 +68,7 @@ def test_search_in_tag_limit(client, live_server, measure_memory_usage): ) assert b"Updated watch." in res.data - res = client.get(url_for("index") + "?q=xxx-title") + res = client.get(url_for("watchlist.index") + "?q=xxx-title") assert urls[0].split(' ')[0].encode('utf-8') in res.data, urls[0].encode('utf-8') assert urls[1].split(' ')[0].encode('utf-8') not in res.data, urls[0].encode('utf-8') diff --git a/changedetectionio/tests/test_security.py b/changedetectionio/tests/test_security.py index b2efeb3d..00902bfc 100644 --- a/changedetectionio/tests/test_security.py +++ b/changedetectionio/tests/test_security.py @@ -67,7 +67,7 @@ def _runner_test_various_file_slash(client, file_uri): follow_redirects=True ) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) substrings = [b"URLs with hostname components are not permitted", b"No connection adapters were found for"] diff --git a/changedetectionio/tests/test_share_watch.py b/changedetectionio/tests/test_share_watch.py index b8e0758e..00456317 100644 --- a/changedetectionio/tests/test_share_watch.py +++ b/changedetectionio/tests/test_share_watch.py @@ -76,5 +76,5 @@ def test_share_watch(client, live_server, measure_memory_usage): assert bytes(include_filters.encode('utf-8')) in res.data # Check it saved the URL - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert bytes(test_url.encode('utf-8')) in res.data diff --git a/changedetectionio/tests/test_source.py b/changedetectionio/tests/test_source.py index 683d9d32..809b1909 100644 --- a/changedetectionio/tests/test_source.py +++ b/changedetectionio/tests/test_source.py @@ -45,7 +45,7 @@ def test_check_basic_change_detection_functionality_source(client, live_server, wait_for_all_checks(client) # Now something should be ready, indicated by having a 'unviewed' class - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data res = client.get( diff --git a/changedetectionio/tests/test_trigger.py b/changedetectionio/tests/test_trigger.py index 6c40c177..dc18c1a5 100644 --- a/changedetectionio/tests/test_trigger.py +++ b/changedetectionio/tests/test_trigger.py @@ -104,7 +104,7 @@ def test_trigger_functionality(client, live_server, measure_memory_usage): wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data assert b'/test-endpoint' in res.data @@ -116,7 +116,7 @@ def test_trigger_functionality(client, live_server, measure_memory_usage): wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data # Now set the content which contains the trigger text @@ -124,7 +124,7 @@ def test_trigger_functionality(client, live_server, measure_memory_usage): client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # https://github.com/dgtlmoon/changedetection.io/issues/616 diff --git a/changedetectionio/tests/test_trigger_regex.py b/changedetectionio/tests/test_trigger_regex.py index f1c4a14f..62c6acb7 100644 --- a/changedetectionio/tests/test_trigger_regex.py +++ b/changedetectionio/tests/test_trigger_regex.py @@ -41,7 +41,7 @@ def test_trigger_regex_functionality(client, live_server, measure_memory_usage): wait_for_all_checks(client) # It should report nothing found (just a new one shouldnt have anything) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data ### test regex @@ -63,7 +63,7 @@ def test_trigger_regex_functionality(client, live_server, measure_memory_usage): wait_for_all_checks(client) # It should report nothing found (nothing should match the regex) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data with open("test-datastore/endpoint-content.txt", "w") as f: @@ -71,7 +71,7 @@ def test_trigger_regex_functionality(client, live_server, measure_memory_usage): client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # Cleanup everything diff --git a/changedetectionio/tests/test_trigger_regex_with_filter.py b/changedetectionio/tests/test_trigger_regex_with_filter.py index a24d25fe..bf69da9d 100644 --- a/changedetectionio/tests/test_trigger_regex_with_filter.py +++ b/changedetectionio/tests/test_trigger_regex_with_filter.py @@ -67,7 +67,7 @@ def test_trigger_regex_functionality_with_filter(client, live_server, measure_me time.sleep(sleep_time_for_fetch_thread) # It should report nothing found (nothing should match the regex and filter) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data # now this should trigger something @@ -76,7 +76,7 @@ def test_trigger_regex_functionality_with_filter(client, live_server, measure_me client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) time.sleep(sleep_time_for_fetch_thread) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data # Cleanup everything diff --git a/changedetectionio/tests/test_unique_lines.py b/changedetectionio/tests/test_unique_lines.py index 79e13f3d..f3f70dc3 100644 --- a/changedetectionio/tests/test_unique_lines.py +++ b/changedetectionio/tests/test_unique_lines.py @@ -108,14 +108,14 @@ def test_unique_lines_functionality(client, live_server, measure_memory_usage): wait_for_all_checks(client) # It should report nothing found (no new 'unviewed' class) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data # Now set the content which contains the new text and re-ordered existing text set_modified_with_trigger_text_response() client.get(url_for("ui.form_watch_checknow"), follow_redirects=True) wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) assert b'Deleted' in res.data @@ -153,7 +153,7 @@ def test_sort_lines_functionality(client, live_server, measure_memory_usage): wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) # Should be a change registered assert b'unviewed' in res.data diff --git a/changedetectionio/tests/test_xpath_selector.py b/changedetectionio/tests/test_xpath_selector.py index 5c64f5e0..b3d0350e 100644 --- a/changedetectionio/tests/test_xpath_selector.py +++ b/changedetectionio/tests/test_xpath_selector.py @@ -98,7 +98,7 @@ def test_check_xpath_filter_utf8(client, live_server, measure_memory_usage): ) assert b"Updated watch." in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'Unicode strings with encoding declaration are not supported.' not in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) assert b'Deleted' in res.data @@ -152,7 +152,7 @@ def test_check_xpath_text_function_utf8(client, live_server, measure_memory_usag ) assert b"Updated watch." in res.data wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'Unicode strings with encoding declaration are not supported.' not in res.data # The service should echo back the request headers @@ -208,7 +208,7 @@ def test_check_markup_xpath_filter_restriction(client, live_server, measure_memo # Give the thread time to pick it up wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'unviewed' not in res.data res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) assert b'Deleted' in res.data @@ -305,7 +305,7 @@ def test_xpath1_lxml(client, live_server, measure_memory_usage): ##### #2312 wait_for_all_checks(client) - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'_ElementStringResult' not in res.data # tested with 5.1.1 when it was removed and 5.1.0 assert b'Exception' not in res.data res = client.get( @@ -419,7 +419,7 @@ def test_various_rules(client, live_server, measure_memory_usage): ) wait_for_all_checks(client) assert b"Updated watch." in res.data - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) assert b'fetch-error' not in res.data, f"Should not see errors after '{r} filter" res = client.get(url_for("ui.form_delete", uuid="all"), follow_redirects=True) diff --git a/changedetectionio/tests/util.py b/changedetectionio/tests/util.py index 517603c5..00fc16a4 100644 --- a/changedetectionio/tests/util.py +++ b/changedetectionio/tests/util.py @@ -306,7 +306,7 @@ def get_index(client): print(f"Called by: {caller_name}, Line: {caller_line}") - res = client.get(url_for("index")) + res = client.get(url_for("watchlist.index")) with open(f"test-datastore/index-{caller_name}-{caller_line}.html", 'wb') as f: f.write(res.data)