diff --git a/changedetectionio/tests/test_diff_filter_changes_as_add_delete.py b/changedetectionio/tests/test_diff_filter_changes_as_add_delete.py index 83747f33..f226f24d 100644 --- a/changedetectionio/tests/test_diff_filter_changes_as_add_delete.py +++ b/changedetectionio/tests/test_diff_filter_changes_as_add_delete.py @@ -15,11 +15,22 @@ def set_original_response(): with open("test-datastore/endpoint-content.txt", "w") as f: f.write(test_return_data) -def set_all_new_response(): +def set_response_with_deleted_word(): test_return_data = """ - brand - new - words + Here + is + text + """ + + with open("test-datastore/endpoint-content.txt", "w") as f: + f.write(test_return_data) + +def set_response_with_changed_word(): + test_return_data = """ + Here + ix + some + text """ with open("test-datastore/endpoint-content.txt", "w") as f: @@ -43,9 +54,11 @@ def test_diff_filter_changes_as_add_delete(client, live_server): ) assert b"1 Imported" in res.data + # Wait for it to read the original version time.sleep(sleep_time_for_fetch_thread) - # Add our URL to the import page + # Make a change that ONLY includes deletes + set_response_with_deleted_word() res = client.post( url_for("edit_page", uuid="first"), data={"trigger_add": "y", @@ -55,18 +68,40 @@ def test_diff_filter_changes_as_add_delete(client, live_server): follow_redirects=True ) assert b"Updated watch." in res.data + time.sleep(sleep_time_for_fetch_thread) + + # We should NOT see a change because we chose to not know about any Deletions + res = client.get(url_for("index")) + assert b'unviewed' not in res.data + # Recheck to be sure + client.get(url_for("form_watch_checknow"), follow_redirects=True) + time.sleep(sleep_time_for_fetch_thread) + res = client.get(url_for("index")) assert b'unviewed' not in res.data - # Make an delete change - set_all_new_response() - time.sleep(sleep_time_for_fetch_thread) - # Trigger a check + # Now set the original response, which will include the word, which should trigger Added (because trigger_add ==y) + set_original_response() client.get(url_for("form_watch_checknow"), follow_redirects=True) - - # Give the thread time to pick it up time.sleep(sleep_time_for_fetch_thread) + res = client.get(url_for("index")) + assert b'unviewed' in res.data - # We should see the change + # Now check 'changes' are always going to be triggered + set_original_response() + client.post( + url_for("edit_page", uuid="first"), + # Neither trigger add nor del? then we should see changes still + data={"trigger_add": "n", + "trigger_del": "n", + "url": test_url, + "fetch_backend": "html_requests"}, + follow_redirects=True + ) + time.sleep(sleep_time_for_fetch_thread) + client.get(url_for("mark_all_viewed"), follow_redirects=True) + set_response_with_changed_word() + client.get(url_for("form_watch_checknow"), follow_redirects=True) + time.sleep(sleep_time_for_fetch_thread) res = client.get(url_for("index")) assert b'unviewed' in res.data