mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-28 22:09:44 -05:00
We current do this as part of send-daily-performance-platform-stats but now this moves it into its own separate task. This is for two reasons - we will shortly get rid of the send-daily-performance-platform-stats task as we no longer will need to send anything to performance platform - even if we did decide to keep the task send-daily-performance-platform-stats and remove the specific bits that relate to the performance platform, it's probably nicer to rewrite the new task from scratch to make sure it's all clear and easy to understand
48 lines
2.0 KiB
Python
48 lines
2.0 KiB
Python
from datetime import date, datetime, timedelta
|
|
|
|
from freezegun import freeze_time
|
|
|
|
from app.performance_platform.processing_time import (
|
|
send_processing_time_data,
|
|
send_processing_time_to_performance_platform,
|
|
)
|
|
from tests.app.db import create_notification
|
|
|
|
|
|
@freeze_time('2016-10-18T02:00')
|
|
def test_send_processing_time_to_performance_platform_generates_correct_calls(mocker, sample_template):
|
|
send_mock = mocker.patch('app.performance_platform.processing_time.send_processing_time_data')
|
|
|
|
created_at = datetime.utcnow() - timedelta(days=1)
|
|
|
|
create_notification(sample_template, created_at=created_at, sent_at=created_at + timedelta(seconds=5))
|
|
create_notification(sample_template, created_at=created_at, sent_at=created_at + timedelta(seconds=15))
|
|
create_notification(sample_template, created_at=datetime.utcnow() - timedelta(days=2))
|
|
|
|
send_processing_time_to_performance_platform(date(2016, 10, 17))
|
|
|
|
send_mock.assert_any_call(datetime(2016, 10, 16, 23, 0), 'messages-total', 2)
|
|
send_mock.assert_any_call(datetime(2016, 10, 16, 23, 0), 'messages-within-10-secs', 1)
|
|
|
|
|
|
def test_send_processing_time_to_performance_platform_creates_correct_call_to_perf_platform(mocker):
|
|
send_stats = mocker.patch('app.performance_platform.total_sent_notifications.performance_platform_client.send_stats_to_performance_platform') # noqa
|
|
|
|
send_processing_time_data(
|
|
start_time=datetime(2016, 10, 15, 23, 0, 0),
|
|
status='foo',
|
|
count=142
|
|
)
|
|
|
|
assert send_stats.call_count == 1
|
|
|
|
request_args = send_stats.call_args[0][0]
|
|
assert request_args['dataType'] == 'processing-time'
|
|
assert request_args['service'] == 'govuk-notify'
|
|
assert request_args['period'] == 'day'
|
|
assert request_args['status'] == 'foo'
|
|
assert request_args['_timestamp'] == '2016-10-16T00:00:00'
|
|
assert request_args['count'] == 142
|
|
expected_base64_id = 'MjAxNi0xMC0xNlQwMDowMDowMGdvdnVrLW5vdGlmeWZvb3Byb2Nlc3NpbmctdGltZWRheQ=='
|
|
assert request_args['_id'] == expected_base64_id
|