From 96ff5dbeebdc042d8f8ccf1bac01f6c5c669dc9e Mon Sep 17 00:00:00 2001 From: dgtlmoon Date: Tue, 26 Jul 2022 17:18:30 +0200 Subject: [PATCH] Adding multiline example test --- changedetectionio/tests/test_extract_regex.py | 72 +++++++++++++++++-- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/changedetectionio/tests/test_extract_regex.py b/changedetectionio/tests/test_extract_regex.py index 0ac0baf7..e4f37c04 100644 --- a/changedetectionio/tests/test_extract_regex.py +++ b/changedetectionio/tests/test_extract_regex.py @@ -45,6 +45,71 @@ def set_modified_response(): return None +def set_multiline_response(): + test_return_data = """ + + +

Something
+ across 6 billion multiple
+ lines +

+ +
aaand something lines
+ + + """ + + with open("test-datastore/endpoint-content.txt", "w") as f: + f.write(test_return_data) + + return None + +def test_check_filter_multiline(client, live_server): + + live_server_setup(live_server) + set_multiline_response() + + # 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 + + time.sleep(3) + + # Goto the edit page, add our ignore text + # Add our URL to the import page + res = client.post( + url_for("edit_page", uuid="first"), + data={"css_filter": '', + 'extract_text': '/something.+?6 billion.+?lines/si', + "url": test_url, + "tag": "", + "headers": "", + 'fetch_backend': "html_requests" + }, + follow_redirects=True + ) + + assert b"Updated watch." in res.data + time.sleep(3) + + res = client.get( + url_for("preview_page", uuid="first"), + follow_redirects=True + ) + + + assert b'
Something' in res.data + assert b'
across 6 billion multiple' in res.data + assert b'
lines' in res.data + + # but the last one, which also says 'lines' shouldnt be here (non-greedy match checking) + assert b'aaand something lines' not in res.data + def test_check_filter_and_regex_extract(client, live_server): sleep_time_for_fetch_thread = 3 @@ -88,11 +153,6 @@ def test_check_filter_and_regex_extract(client, live_server): assert b"Updated watch." in res.data - # Check it saved - res = client.get( - url_for("edit_page", uuid="first"), - ) - # Give the thread time to pick it up time.sleep(sleep_time_for_fetch_thread) @@ -126,7 +186,7 @@ def test_check_filter_and_regex_extract(client, live_server): # Regex with flag handling should be here assert b'
SomeCase insensitive 3456' in res.data - + # Singular group from /somecase insensitive (345\d)/i assert b'
3456' in res.data