mirror of
https://github.com/ansible/awx.git
synced 2026-03-07 03:31:10 -03:30
121 lines
4.1 KiB
Python
121 lines
4.1 KiB
Python
import json
|
|
|
|
from unittest import mock
|
|
from django.core.mail.message import EmailMessage
|
|
|
|
import awx.main.notifications.rocketchat_backend as rocketchat_backend
|
|
|
|
|
|
def test_send_messages():
|
|
with mock.patch('awx.main.notifications.rocketchat_backend.requests') as requests_mock, mock.patch(
|
|
'awx.main.notifications.rocketchat_backend.get_awx_http_client_headers'
|
|
) as version_mock:
|
|
requests_mock.post.return_value.status_code = 201
|
|
version_mock.return_value = {'Content-Type': 'application/json', 'User-Agent': 'AWX 0.0.1.dev (open)'}
|
|
backend = rocketchat_backend.RocketChatBackend()
|
|
message = EmailMessage(
|
|
'test subject',
|
|
'test body',
|
|
[],
|
|
[
|
|
'http://example.com',
|
|
],
|
|
)
|
|
sent_messages = backend.send_messages(
|
|
[
|
|
message,
|
|
]
|
|
)
|
|
requests_mock.post.assert_called_once_with(
|
|
'http://example.com',
|
|
data='{"text": "test subject"}',
|
|
headers={'Content-Type': 'application/json', 'User-Agent': 'AWX 0.0.1.dev (open)'},
|
|
verify=True,
|
|
)
|
|
assert sent_messages == 1
|
|
|
|
|
|
def test_send_messages_with_username():
|
|
with mock.patch('awx.main.notifications.rocketchat_backend.requests') as requests_mock:
|
|
requests_mock.post.return_value.status_code = 201
|
|
backend = rocketchat_backend.RocketChatBackend(rocketchat_username='testuser')
|
|
message = EmailMessage(
|
|
'test subject',
|
|
'test body',
|
|
[],
|
|
[
|
|
'http://example.com',
|
|
],
|
|
)
|
|
sent_messages = backend.send_messages(
|
|
[
|
|
message,
|
|
]
|
|
)
|
|
|
|
calls = requests_mock.post.call_args_list
|
|
assert len(calls) == 1
|
|
args, kwargs = calls[0]
|
|
assert args[0] == 'http://example.com'
|
|
assert json.loads(kwargs['data'])['text'] == 'test subject'
|
|
assert json.loads(kwargs['data'])['username'] == 'testuser'
|
|
assert kwargs['verify'] is True
|
|
assert sent_messages == 1
|
|
|
|
|
|
def test_send_messages_with_icon_url():
|
|
with mock.patch('awx.main.notifications.rocketchat_backend.requests') as requests_mock:
|
|
requests_mock.post.return_value.status_code = 201
|
|
backend = rocketchat_backend.RocketChatBackend(rocketchat_icon_url='http://example.com')
|
|
message = EmailMessage(
|
|
'test subject',
|
|
'test body',
|
|
[],
|
|
[
|
|
'http://example.com',
|
|
],
|
|
)
|
|
sent_messages = backend.send_messages(
|
|
[
|
|
message,
|
|
]
|
|
)
|
|
|
|
calls = requests_mock.post.call_args_list
|
|
assert len(calls) == 1
|
|
args, kwargs = calls[0]
|
|
assert args[0] == 'http://example.com'
|
|
assert json.loads(kwargs['data'])['text'] == 'test subject'
|
|
assert json.loads(kwargs['data'])['icon_url'] == 'http://example.com'
|
|
assert kwargs['verify'] is True
|
|
assert sent_messages == 1
|
|
|
|
|
|
def test_send_messages_with_no_verify_ssl():
|
|
with mock.patch('awx.main.notifications.rocketchat_backend.requests') as requests_mock, mock.patch(
|
|
'awx.main.notifications.rocketchat_backend.get_awx_http_client_headers'
|
|
) as version_mock:
|
|
requests_mock.post.return_value.status_code = 201
|
|
version_mock.return_value = {'Content-Type': 'application/json', 'User-Agent': 'AWX 0.0.1.dev (open)'}
|
|
backend = rocketchat_backend.RocketChatBackend(rocketchat_no_verify_ssl=True)
|
|
message = EmailMessage(
|
|
'test subject',
|
|
'test body',
|
|
[],
|
|
[
|
|
'http://example.com',
|
|
],
|
|
)
|
|
sent_messages = backend.send_messages(
|
|
[
|
|
message,
|
|
]
|
|
)
|
|
requests_mock.post.assert_called_once_with(
|
|
'http://example.com',
|
|
data='{"text": "test subject"}',
|
|
headers={'Content-Type': 'application/json', 'User-Agent': 'AWX 0.0.1.dev (open)'},
|
|
verify=False,
|
|
)
|
|
assert sent_messages == 1
|