From ad75e8cdd095564b8c6b93c5663377e2f7338b4f Mon Sep 17 00:00:00 2001 From: dgtlmoon Date: Thu, 6 Apr 2023 14:46:08 +0200 Subject: [PATCH] Tests - Add test to check that low level fetch errors are cleared on next check --- changedetectionio/tests/test_errorhandling.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/changedetectionio/tests/test_errorhandling.py b/changedetectionio/tests/test_errorhandling.py index 3f8e9c9c..3e7f6bfc 100644 --- a/changedetectionio/tests/test_errorhandling.py +++ b/changedetectionio/tests/test_errorhandling.py @@ -82,3 +82,42 @@ def test_DNS_errors(client, live_server): # Should always record that we tried assert bytes("just now".encode('utf-8')) in res.data +# Re 1513 +def test_low_level_errors_clear_correctly(client, live_server): + #live_server_setup(live_server) + # Give the endpoint time to spin up + time.sleep(1) + + with open("test-datastore/endpoint-content.txt", "w") as f: + f.write("
Hello world
") + + # Add our URL to the import page + test_url = url_for('test_endpoint', _external=True) + + res = client.post( + url_for("import_page"), + data={"urls": "https://dfkjasdkfjaidjfsdajfksdajfksdjfDOESNTEXIST.com"}, + follow_redirects=True + ) + assert b"1 Imported" in res.data + time.sleep(2) + + # We should see the DNS error + res = client.get(url_for("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 + + # Update with what should work + client.post( + url_for("edit_page", uuid="first"), + data={ + "url": test_url, + "fetch_backend": "html_requests"}, + follow_redirects=True + ) + + # Now the error should be gone + time.sleep(2) + res = client.get(url_for("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