Skip to content

Commit

Permalink
Re #143 - Remove old notification test code, fix form handler (#145)
Browse files Browse the repository at this point in the history
* Re #143 - global notification settings box fix - Remove old notification test code, fix form handler, add test
  • Loading branch information
dgtlmoon authored Jul 20, 2021
1 parent 32a7981 commit fe4963e
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 25 deletions.
21 changes: 1 addition & 20 deletions backend/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -486,29 +486,10 @@ def settings_page():
datastore.data['settings']['application']['notification_title'] = form.notification_title.data
datastore.data['settings']['application']['notification_body'] = form.notification_body.data

if len(form.notification_urls.data):
import apprise
apobj = apprise.Apprise()
apobj.debug = True

# Add each notification
for n in datastore.data['settings']['application']['notification_urls']:
apobj.add(n)
outcome = apobj.notify(
body='Hello from the worlds best and simplest web page change detection and monitoring service!',
title='Changedetection.io Notification Test',
)

if outcome:
flash("{} Notification URLs reached.".format(len(form.notification_urls.data)), "notice")
else:
flash("One or more Notification URLs failed", 'error')


datastore.data['settings']['application']['notification_urls'] = form.notification_urls.data
datastore.needs_write = True

if form.trigger_check.data:
if form.trigger_check.data and len(form.notification_urls.data):
n_object = {'watch_url': "Test from changedetection.io!",
'notification_urls': form.notification_urls.data}
notification_q.put(n_object)
Expand Down
8 changes: 3 additions & 5 deletions backend/templates/settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,9 @@
</span>
</div>
</div>

<span class="pure-form-message-inline"><label for="trigger-test-notification" class="pure-checkbox">
<input type="checkbox" id="trigger-test-notification" name="trigger-test-notification"> Send test notification on save.</label>
</span>

<div class="pure-control-group">
{{ render_field(form.trigger_check) }}
</div>
</div>
<div class="pure-control-group">
<button type="submit" class="pure-button pure-button-primary">Save</button>
Expand Down
3 changes: 3 additions & 0 deletions backend/tests/test_notification.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,13 @@ def test_check_notification(client, live_server):
url_for("settings_page"),
data={"notification_title": "New ChangeDetection.io Notification - {watch_url}",
"notification_body": "{base_url}\n{watch_url}\n{preview_url}\n{diff_url}\n{current_snapshot}\n:-)",
"notification_urls": "json://foobar.com", #Re #143 should not see that it sent without [test checkbox]
"minutes_between_check": 180},
follow_redirects=True
)
assert b"Settings updated." in res.data
# Re #143 - should not see this if we didnt hit the test box
assert b"Notifications queued" not in res.data

# Trigger a check
client.get(url_for("api_watch_checknow"), follow_redirects=True)
Expand Down

0 comments on commit fe4963e

Please sign in to comment.