diff --git a/changedetectionio/tests/test2.pdf b/changedetectionio/tests/test2.pdf new file mode 100644 index 00000000..083ad8ad Binary files /dev/null and b/changedetectionio/tests/test2.pdf differ diff --git a/changedetectionio/tests/test_pdf.py b/changedetectionio/tests/test_pdf.py index fcbce8d5..d8694a57 100644 --- a/changedetectionio/tests/test_pdf.py +++ b/changedetectionio/tests/test_pdf.py @@ -2,9 +2,8 @@ import time from flask import url_for -from .util import set_original_response, set_modified_response, live_server_setup +from .util import set_original_response, set_modified_response, live_server_setup, wait_for_all_checks -sleep_time_for_fetch_thread = 3 # `subtractive_selectors` should still work in `source:` type requests def test_fetch_pdf(client, live_server): @@ -22,7 +21,9 @@ def test_fetch_pdf(client, live_server): assert b"1 Imported" in res.data - time.sleep(sleep_time_for_fetch_thread) + + wait_for_all_checks(client) + res = client.get( url_for("preview_page", uuid="first"), follow_redirects=True @@ -33,8 +34,42 @@ def test_fetch_pdf(client, live_server): # So we know if the file changes in other ways import hashlib - md5 = hashlib.md5(open("test-datastore/endpoint-test.pdf", 'rb').read()).hexdigest().upper() + original_md5 = hashlib.md5(open("test-datastore/endpoint-test.pdf", 'rb').read()).hexdigest().upper() # We should have one - assert len(md5) >0 + assert len(original_md5) >0 # And it's going to be in the document - assert b'Document checksum - '+bytes(str(md5).encode('utf-8')) in res.data \ No newline at end of file + assert b'Document checksum - '+bytes(str(original_md5).encode('utf-8')) in res.data + + + shutil.copy("tests/test2.pdf", "test-datastore/endpoint-test.pdf") + changed_md5 = hashlib.md5(open("test-datastore/endpoint-test.pdf", 'rb').read()).hexdigest().upper() + res = client.get(url_for("form_watch_checknow"), follow_redirects=True) + assert b'1 watches queued for rechecking.' in res.data + + wait_for_all_checks(client) + + # Now something should be ready, indicated by having a 'unviewed' class + res = client.get(url_for("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) + + res = client.get( + url_for("preview_page", uuid="first"), + follow_redirects=True + ) + + assert original_md5.encode('utf-8') not in res.data + assert changed_md5.encode('utf-8') in res.data + + + res = client.get( + url_for("diff_history_page", uuid="first"), + follow_redirects=True + ) + + assert original_md5.encode('utf-8') in res.data + assert changed_md5.encode('utf-8') in res.data + + assert b'here is a change' in res.data + \ No newline at end of file