-
-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
104 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -304,13 +304,13 @@ def test_stateful_configuration_io(self, mock_post): | |
mock_post.reset_mock() | ||
|
||
@patch('requests.post') | ||
def test_stateful_group_notify(self, mock_post): | ||
def test_stateful_group_dict_notify(self, mock_post): | ||
""" | ||
Test the writing, removal, writing of a group based configuration | ||
Test the handling of a group defined as a dictionary | ||
""" | ||
|
||
# our key to use | ||
key = 'test_stateful_group_notify' | ||
key = 'test_stateful_group_notify_dict' | ||
|
||
request = Mock() | ||
request.content = b'ok' | ||
|
@@ -363,10 +363,108 @@ def test_stateful_group_notify(self, mock_post): | |
response = self.client.post( | ||
'/notify/{}'.format(key), form.cleaned_data) | ||
assert response.status_code == 200 | ||
|
||
# Our single endpoint is notified | ||
assert mock_post.call_count == 1 | ||
|
||
mock_post.reset_mock() | ||
|
||
# Now let's notify by our group | ||
form_data = { | ||
'body': '## test notifiction', | ||
'format': apprise.NotifyFormat.MARKDOWN, | ||
'tag': 'mygroup', | ||
} | ||
|
||
form = NotifyForm(data=form_data) | ||
assert form.is_valid() | ||
|
||
# Required to prevent None from being passed into | ||
# self.client.post() | ||
del form.cleaned_data['attachment'] | ||
|
||
# We sent the notification successfully | ||
response = self.client.post( | ||
'/notify/{}'.format(key), form.cleaned_data) | ||
assert response.status_code == 200 | ||
|
||
# Our 2 endpoints are notified | ||
assert mock_post.call_count == 2 | ||
|
||
mock_post.reset_mock() | ||
|
||
# Now empty our data | ||
response = self.client.post('/del/{}'.format(key)) | ||
assert response.status_code == 200 | ||
|
||
# Reset our count | ||
mock_post.reset_mock() | ||
|
||
@patch('requests.post') | ||
def test_stateful_group_dictlist_notify(self, mock_post): | ||
""" | ||
Test the handling of a group defined as a list of dictionaries | ||
""" | ||
|
||
# our key to use | ||
key = 'test_stateful_group_notify_list_dict' | ||
|
||
request = Mock() | ||
request.content = b'ok' | ||
request.status_code = requests.codes.ok | ||
mock_post.return_value = request | ||
|
||
# Monkey Patch | ||
apprise.plugins.NotifyEmail.NotifyEmail.enabled = True | ||
|
||
config = inspect.cleandoc(""" | ||
version: 1 | ||
groups: | ||
- mygroup: user1, user2 | ||
urls: | ||
- json:///user:pass@localhost: | ||
- to: [email protected] | ||
tag: user1 | ||
- to: [email protected] | ||
tag: user2 | ||
""") | ||
|
||
# Monkey Patch | ||
apprise.plugins.NotifyJSON.NotifyJSON.enabled = True | ||
|
||
# Add our content | ||
response = self.client.post( | ||
'/add/{}'.format(key), | ||
{'config': config}) | ||
assert response.status_code == 200 | ||
|
||
# Now we should be able to see our content | ||
response = self.client.post('/get/{}'.format(key)) | ||
assert response.status_code == 200 | ||
|
||
for tag in ('user1', 'user2'): | ||
form_data = { | ||
'body': '## test notifiction', | ||
'format': apprise.NotifyFormat.MARKDOWN, | ||
'tag': tag, | ||
} | ||
form = NotifyForm(data=form_data) | ||
assert form.is_valid() | ||
|
||
# Required to prevent None from being passed into | ||
# self.client.post() | ||
del form.cleaned_data['attachment'] | ||
|
||
# We sent the notification successfully | ||
response = self.client.post( | ||
'/notify/{}'.format(key), form.cleaned_data) | ||
assert response.status_code == 200 | ||
|
||
# Our single endpoint is notified | ||
assert mock_post.call_count == 1 | ||
|
||
mock_post.reset_mock() | ||
|
||
# Now let's notify by our group | ||
form_data = { | ||
|
@@ -386,7 +484,9 @@ def test_stateful_group_notify(self, mock_post): | |
response = self.client.post( | ||
'/notify/{}'.format(key), form.cleaned_data) | ||
assert response.status_code == 200 | ||
assert mock_post.call_count == 1 | ||
|
||
# Our 2 endpoints are notified | ||
assert mock_post.call_count == 2 | ||
|
||
mock_post.reset_mock() | ||
|
||
|