kopia lustrzana https://github.com/dgtlmoon/changedetection.io
Activate workflow on all branches
rodzic
468184bc3a
commit
ec1ac300af
|
@ -6,9 +6,9 @@ name: changedetection.io
|
|||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
branches: [ * ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
branches: [ * ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
[pytest]
|
||||
addopts = --no-start-live-server --live-server-port=5005
|
||||
live_server_scope = function
|
||||
#testpaths = tests pytest_invenio
|
||||
#live_server_scope = session
|
||||
|
||||
#filterwarnings =
|
||||
#ignore::DeprecationWarning:sqlalchemy.*:
|
||||
|
||||
; logging options
|
||||
#log_cli = 1
|
||||
#log_cli_level = DEBUG
|
||||
#log_cli_format = %(asctime)s %(name)s: %(levelname)s %(message)s
|
|
@ -7,7 +7,6 @@ import os
|
|||
|
||||
|
||||
# https://github.com/pallets/flask/blob/1.1.2/examples/tutorial/tests/test_auth.py
|
||||
|
||||
# Much better boilerplate than the docs
|
||||
# https://www.python-boilerplate.com/py3+flask+pytest/
|
||||
|
||||
|
@ -16,7 +15,6 @@ global app
|
|||
@pytest.fixture(scope='session')
|
||||
def app(request):
|
||||
"""Create application for the tests."""
|
||||
|
||||
datastore_path = "./test-datastore"
|
||||
|
||||
try:
|
||||
|
@ -42,6 +40,16 @@ def app(request):
|
|||
# This is fine in the case of a failure.
|
||||
pass
|
||||
|
||||
@live_server.app.route('/test-endpoint')
|
||||
def test_endpoint():
|
||||
# Tried using a global var here but didn't seem to work, so reading from a file instead.
|
||||
with open("test-datastore/output.txt", "r") as f:
|
||||
return f.read()
|
||||
|
||||
live_server.start()
|
||||
|
||||
assert 1 == 1
|
||||
|
||||
request.addfinalizer(teardown)
|
||||
return app
|
||||
yield app
|
||||
|
||||
|
|
|
@ -3,7 +3,23 @@
|
|||
import time
|
||||
from flask import url_for
|
||||
from urllib.request import urlopen
|
||||
import pytest
|
||||
|
||||
sleep_time_for_fetch_thread = 3
|
||||
|
||||
|
||||
def test_setup_liveserver(live_server):
|
||||
|
||||
|
||||
@live_server.app.route('/test-endpoint')
|
||||
def test_endpoint():
|
||||
# Tried using a global var here but didn't seem to work, so reading from a file instead.
|
||||
with open("test-datastore/output.txt", "r") as f:
|
||||
return f.read()
|
||||
live_server.start()
|
||||
|
||||
|
||||
assert 1 == 1
|
||||
|
||||
def set_original_response():
|
||||
test_return_data = """<html>
|
||||
|
@ -14,7 +30,6 @@ def set_original_response():
|
|||
So let's see what happens. </br>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
"""
|
||||
|
||||
with open("test-datastore/output.txt", "w") as f:
|
||||
|
@ -30,7 +45,6 @@ def set_modified_response():
|
|||
So let's see what happens. </br>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
"""
|
||||
|
||||
with open("test-datastore/output.txt", "w") as f:
|
||||
|
@ -38,18 +52,8 @@ def set_modified_response():
|
|||
|
||||
|
||||
def test_check_basic_change_detection_functionality(client, live_server):
|
||||
sleep_time_for_fetch_thread = 5
|
||||
|
||||
@live_server.app.route('/test-endpoint')
|
||||
def test_endpoint():
|
||||
# Tried using a global var here but didn't seem to work, so reading from a file instead.
|
||||
with open("test-datastore/output.txt", "r") as f:
|
||||
return f.read()
|
||||
|
||||
set_original_response()
|
||||
|
||||
live_server.start()
|
||||
|
||||
# Add our URL to the import page
|
||||
res = client.post(
|
||||
url_for("import_page"),
|
||||
|
@ -91,13 +95,13 @@ def test_check_basic_change_detection_functionality(client, live_server):
|
|||
assert b'unviewed' in res.data
|
||||
|
||||
# Following the 'diff' link, it should no longer display as 'unviewed' even after we recheck it a few times
|
||||
res = client.get(url_for("diff_history_page", uuid="first") )
|
||||
res = client.get(url_for("diff_history_page", uuid="first"))
|
||||
assert b'Compare newest' in res.data
|
||||
|
||||
time.sleep(2)
|
||||
|
||||
# Do this a few times.. ensures we dont accidently set the status
|
||||
for n in range(3):
|
||||
for n in range(2):
|
||||
client.get(url_for("api_watch_checknow"), follow_redirects=True)
|
||||
|
||||
# Give the thread time to pick it up
|
||||
|
@ -108,10 +112,10 @@ def test_check_basic_change_detection_functionality(client, live_server):
|
|||
assert b'unviewed' not in res.data
|
||||
assert b'test-endpoint' in res.data
|
||||
|
||||
|
||||
set_original_response()
|
||||
|
||||
client.get(url_for("api_watch_checknow"), follow_redirects=True)
|
||||
time.sleep(sleep_time_for_fetch_thread)
|
||||
res = client.get(url_for("index"))
|
||||
assert b'unviewed' in res.data
|
||||
assert b'unviewed' in res.data
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
import time
|
||||
from flask import url_for
|
||||
from urllib.request import urlopen
|
||||
import pytest
|
||||
|
||||
|
||||
# Unit test of the stripper
|
||||
|
@ -12,9 +13,9 @@ def test_strip_text_func():
|
|||
test_content = """
|
||||
Some content
|
||||
is listed here
|
||||
|
||||
|
||||
but sometimes we want to remove the lines.
|
||||
|
||||
|
||||
but not always."""
|
||||
|
||||
original_length = len(test_content.splitlines())
|
||||
|
@ -32,7 +33,7 @@ def test_strip_text_func():
|
|||
assert "Some content" in stripped_content
|
||||
|
||||
|
||||
def set_original_response():
|
||||
def set_original_ignore_response():
|
||||
test_return_data = """<html>
|
||||
<body>
|
||||
Some initial text</br>
|
||||
|
@ -49,7 +50,7 @@ def set_original_response():
|
|||
|
||||
|
||||
# Is the same but includes ZZZZZ, 'ZZZZZ' is the last line in ignore_text
|
||||
def set_modified_response():
|
||||
def set_modified_ignore_response():
|
||||
test_return_data = """<html>
|
||||
<body>
|
||||
Some initial text</br>
|
||||
|
@ -70,21 +71,13 @@ def test_check_ignore_text_functionality(client, live_server):
|
|||
sleep_time_for_fetch_thread = 5
|
||||
|
||||
ignore_text = "XXXXX\nYYYYY\nZZZZZ"
|
||||
set_original_response()
|
||||
|
||||
@live_server.app.route('/test-ignore-endpoint')
|
||||
def test_ignore_endpoint():
|
||||
# Tried using a global var here but didn't seem to work, so reading from a file instead.
|
||||
with open("test-datastore/output.txt", "r") as f:
|
||||
return f.read()
|
||||
|
||||
live_server.start()
|
||||
set_original_ignore_response()
|
||||
|
||||
# Give the endpoint time to spin up
|
||||
time.sleep(1)
|
||||
|
||||
# Add our URL to the import page
|
||||
test_url = url_for('test_ignore_endpoint', _external=True)
|
||||
test_url = url_for('test_endpoint', _external=True)
|
||||
res = client.post(
|
||||
url_for("import_page"),
|
||||
data={"urls": test_url},
|
||||
|
@ -116,9 +109,9 @@ def test_check_ignore_text_functionality(client, live_server):
|
|||
# It should report nothing found (no new 'unviewed' class)
|
||||
res = client.get(url_for("index"))
|
||||
assert b'unviewed' not in res.data
|
||||
assert b'/test-ignore-endpoint' in res.data
|
||||
assert b'/test-endpoint' in res.data
|
||||
|
||||
set_modified_response()
|
||||
set_modified_ignore_response()
|
||||
|
||||
# Trigger a check
|
||||
client.get(url_for("api_watch_checknow"), follow_redirects=True)
|
||||
|
@ -129,7 +122,6 @@ def test_check_ignore_text_functionality(client, live_server):
|
|||
# It should report nothing found (no new 'unviewed' class)
|
||||
res = client.get(url_for("index"))
|
||||
assert b'unviewed' not in res.data
|
||||
assert b'/test-ignore-endpoint' in res.data
|
||||
assert b'/test-endpoint' in res.data
|
||||
|
||||
live_server.stop()
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue