Skip to content

Commit

Permalink
updated testing
Browse files Browse the repository at this point in the history
  • Loading branch information
caronc committed Dec 28, 2023
1 parent 5cdab3c commit dc59948
Showing 1 changed file with 104 additions and 4 deletions.
108 changes: 104 additions & 4 deletions apprise_api/api/tests/test_stateful_notify.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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 = {
Expand All @@ -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()

Expand Down

0 comments on commit dc59948

Please sign in to comment.