From 8253074d5677614f12655f2c8cdc419a3958e88d Mon Sep 17 00:00:00 2001 From: dgtlmoon Date: Sat, 25 Feb 2023 22:14:47 +0100 Subject: [PATCH] False change alerts fix - Don't reset watch checksum when a fetch error happens, adjust test to not test for fluctuating filter (#1437) --- .../tests/test_filter_exist_changes.py | 15 --------------- changedetectionio/update_worker.py | 15 +++++---------- 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/changedetectionio/tests/test_filter_exist_changes.py b/changedetectionio/tests/test_filter_exist_changes.py index 27d40345..613feca2 100644 --- a/changedetectionio/tests/test_filter_exist_changes.py +++ b/changedetectionio/tests/test_filter_exist_changes.py @@ -117,18 +117,3 @@ def test_filter_doesnt_exist_then_exists_should_get_notification(client, live_se assert 'Ticket now on sale' in notification os.unlink("test-datastore/notification.txt") - - - # Test that if it gets removed, then re-added, we get a notification - # Remove the target and re-add it, we should get a new notification - set_response_without_filter() - client.get(url_for("form_watch_checknow"), follow_redirects=True) - time.sleep(3) - assert not os.path.isfile("test-datastore/notification.txt") - - set_response_with_filter() - client.get(url_for("form_watch_checknow"), follow_redirects=True) - time.sleep(3) - assert os.path.isfile("test-datastore/notification.txt") - -# Also test that the filter was updated after the first one was requested diff --git a/changedetectionio/update_worker.py b/changedetectionio/update_worker.py index ccb01097..4da06f44 100644 --- a/changedetectionio/update_worker.py +++ b/changedetectionio/update_worker.py @@ -212,9 +212,7 @@ class update_worker(threading.Thread): if e.page_text: self.datastore.save_error_text(watch_uuid=uuid, contents=e.page_text) - self.datastore.update_watch(uuid=uuid, update_obj={'last_error': err_text, - # So that we get a trigger when the content is added again - 'previous_md5': ''}) + self.datastore.update_watch(uuid=uuid, update_obj={'last_error': err_text}) process_changedetection_results = False except FilterNotFoundInResponse as e: @@ -222,9 +220,7 @@ class update_worker(threading.Thread): continue err_text = "Warning, no filters were found, no change detection ran." - self.datastore.update_watch(uuid=uuid, update_obj={'last_error': err_text, - # So that we get a trigger when the content is added again - 'previous_md5': ''}) + self.datastore.update_watch(uuid=uuid, update_obj={'last_error': err_text}) # Only when enabled, send the notification if self.datastore.data['watching'][uuid].get('filter_failure_notification_send', False): @@ -241,7 +237,7 @@ class update_worker(threading.Thread): self.datastore.update_watch(uuid=uuid, update_obj={'consecutive_filter_failures': c}) - process_changedetection_results = True + process_changedetection_results = False except content_fetcher.checksumFromPreviousCheckWasTheSame as e: # Yes fine, so nothing todo, don't continue to process. @@ -254,9 +250,7 @@ class update_worker(threading.Thread): continue err_text = "Warning, browser step at position {} could not run, target not found, check the watch, add a delay if necessary.".format(e.step_n+1) - self.datastore.update_watch(uuid=uuid, update_obj={'last_error': err_text, - # So that we get a trigger when the content is added again - 'previous_md5': ''}) + self.datastore.update_watch(uuid=uuid, update_obj={'last_error': err_text}) if self.datastore.data['watching'][uuid].get('filter_failure_notification_send', False): @@ -272,6 +266,7 @@ class update_worker(threading.Thread): c = 0 self.datastore.update_watch(uuid=uuid, update_obj={'consecutive_filter_failures': c}) + process_changedetection_results = False except content_fetcher.EmptyReply as e: