From 41a6c608b127dfb132b9de0f9e4108e4bf34d8f4 Mon Sep 17 00:00:00 2001 From: dgtlmoon Date: Tue, 7 May 2024 11:42:09 +0200 Subject: [PATCH] test note needed --- .../test_automatic_follow_ldjson_price.py | 234 ------------------ 1 file changed, 234 deletions(-) delete mode 100644 changedetectionio/tests/test_automatic_follow_ldjson_price.py diff --git a/changedetectionio/tests/test_automatic_follow_ldjson_price.py b/changedetectionio/tests/test_automatic_follow_ldjson_price.py deleted file mode 100644 index ff1e6330..00000000 --- a/changedetectionio/tests/test_automatic_follow_ldjson_price.py +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/python3 - -import time -from flask import url_for -from .util import live_server_setup, extract_UUID_from_client, extract_api_key_from_UI, wait_for_all_checks - - -def set_response_with_ldjson(): - test_return_data = """ - - Some initial text
-

Which is across multiple lines

-
- So let's see what happens.
-
Some text thats the same
-
Some text that will change
- - - -""" - - with open("test-datastore/endpoint-content.txt", "w") as f: - f.write(test_return_data) - return None - -def set_response_without_ldjson(): - test_return_data = """ - - Some initial text
-

Which is across multiple lines

-
- So let's see what happens.
-
Some text thats the same
-
Some text that will change
- - -""" - - with open("test-datastore/endpoint-content.txt", "w") as f: - f.write(test_return_data) - return None - -def test_setup(client, live_server): - live_server_setup(live_server) - -# actually only really used by the distll.io importer, but could be handy too -def test_check_ldjson_price_autodetect(client, live_server): - - set_response_with_ldjson() - - # Add our URL to the import page - test_url = url_for('test_endpoint', _external=True) - res = client.post( - url_for("import_page"), - data={"urls": test_url}, - follow_redirects=True - ) - assert b"1 Imported" in res.data - wait_for_all_checks(client) - - # Should get a notice that it's available - res = client.get(url_for("index")) - assert b'ldjson-price-track-offer' in res.data - - # Accept it - uuid = extract_UUID_from_client(client) - - client.get(url_for('price_data_follower.accept', uuid=uuid, follow_redirects=True)) - wait_for_all_checks(client) - - # Trigger a check - client.get(url_for("form_watch_checknow"), follow_redirects=True) - wait_for_all_checks(client) - # Offer should be gone - res = client.get(url_for("index")) - assert b'Embedded price data' not in res.data - assert b'tracking-ldjson-price-data' in res.data - - # and last snapshop (via API) should be just the price - api_key = extract_api_key_from_UI(client) - res = client.get( - url_for("watchsinglehistory", uuid=uuid, timestamp='latest'), - headers={'x-api-key': api_key}, - ) - - # Should see this (dont know where the whitespace came from) - assert b'"highPrice": 8099900' in res.data - # And not this cause its not the ld-json - assert b"So let's see what happens" not in res.data - - client.get(url_for("form_delete", uuid="all"), follow_redirects=True) - - ########################################################################################## - # And we shouldnt see the offer - set_response_without_ldjson() - - # Add our URL to the import page - test_url = url_for('test_endpoint', _external=True) - res = client.post( - url_for("import_page"), - data={"urls": test_url}, - follow_redirects=True - ) - assert b"1 Imported" in res.data - wait_for_all_checks(client) - res = client.get(url_for("index")) - assert b'ldjson-price-track-offer' not in res.data - - ########################################################################################## - client.get(url_for("form_delete", uuid="all"), follow_redirects=True) - - -def _test_runner_check_bad_format_ignored(live_server, client, has_ldjson_price_data): - - test_url = url_for('test_endpoint', _external=True) - res = client.post( - url_for("import_page"), - data={"urls": test_url}, - follow_redirects=True - ) - assert b"1 Imported" in res.data - wait_for_all_checks(client) - - for k,v in client.application.config.get('DATASTORE').data['watching'].items(): - assert v.get('last_error') == False - assert v.get('has_ldjson_price_data') == has_ldjson_price_data - - - ########################################################################################## - client.get(url_for("form_delete", uuid="all"), follow_redirects=True) - - -def test_bad_ldjson_is_correctly_ignored(client, live_server): - #live_server_setup(live_server) - test_return_data = """ - - - - - -
Some extra stuff
- - """ - with open("test-datastore/endpoint-content.txt", "w") as f: - f.write(test_return_data) - - _test_runner_check_bad_format_ignored(live_server=live_server, client=client, has_ldjson_price_data=True) - test_return_data = """ - - - - - -
Some extra stuff
- - """ - with open("test-datastore/endpoint-content.txt", "w") as f: - f.write(test_return_data) - - _test_runner_check_bad_format_ignored(live_server=live_server, client=client, has_ldjson_price_data=False) -