mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-01 07:35:34 -05:00
Fix cancel broadcast by converting reference date to string
Datetime oobject is not json serializable, we have to convert it to string for the created_at field of previous broadcast provider messages.
This commit is contained in:
@@ -165,12 +165,16 @@ class CBCProxyEE(CBCProxyClientBase):
|
|||||||
identifier, previous_provider_messages,
|
identifier, previous_provider_messages,
|
||||||
sent, message_number=None
|
sent, message_number=None
|
||||||
):
|
):
|
||||||
|
from app import DATETIME_FORMAT
|
||||||
payload = {
|
payload = {
|
||||||
'message_type': 'cancel',
|
'message_type': 'cancel',
|
||||||
'identifier': identifier,
|
'identifier': identifier,
|
||||||
'message_format': 'cap',
|
'message_format': 'cap',
|
||||||
"references": [
|
"references": [
|
||||||
{"message_id": str(message.id), "sent": message.created_at} for message in previous_provider_messages
|
{
|
||||||
|
"message_id": str(message.id),
|
||||||
|
"sent": message.created_at.strftime(DATETIME_FORMAT)
|
||||||
|
} for message in previous_provider_messages
|
||||||
],
|
],
|
||||||
'sent': sent,
|
'sent': sent,
|
||||||
}
|
}
|
||||||
@@ -219,6 +223,7 @@ class CBCProxyVodafone(CBCProxyClientBase):
|
|||||||
):
|
):
|
||||||
# avoid cyclical import
|
# avoid cyclical import
|
||||||
from app.utils import format_sequential_number
|
from app.utils import format_sequential_number
|
||||||
|
from app import DATETIME_FORMAT
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
'message_type': 'cancel',
|
'message_type': 'cancel',
|
||||||
@@ -229,7 +234,7 @@ class CBCProxyVodafone(CBCProxyClientBase):
|
|||||||
{
|
{
|
||||||
"message_id": str(message.id),
|
"message_id": str(message.id),
|
||||||
"message_number": format_sequential_number(message.message_number),
|
"message_number": format_sequential_number(message.message_number),
|
||||||
"sent": message.created_at
|
"sent": message.created_at.strftime(DATETIME_FORMAT)
|
||||||
} for message in previous_provider_messages
|
} for message in previous_provider_messages
|
||||||
],
|
],
|
||||||
'sent': sent,
|
'sent': sent,
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
import json
|
import json
|
||||||
import uuid
|
import uuid
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
from datetime import datetime
|
||||||
from unittest.mock import Mock
|
from unittest.mock import Mock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from app import DATETIME_FORMAT
|
||||||
from app.clients.cbc_proxy import CBCProxyClient, CBCProxyException, CBCProxyEE, CBCProxyCanary
|
from app.clients.cbc_proxy import CBCProxyClient, CBCProxyException, CBCProxyEE, CBCProxyCanary
|
||||||
|
|
||||||
|
|
||||||
@@ -119,13 +121,15 @@ def test_cbc_proxy_ee_create_and_send_invokes_function(mocker, cbc_proxy_ee):
|
|||||||
|
|
||||||
def test_cbc_proxy_ee_cancel_invokes_function(mocker, cbc_proxy_ee):
|
def test_cbc_proxy_ee_cancel_invokes_function(mocker, cbc_proxy_ee):
|
||||||
identifier = 'my-identifier'
|
identifier = 'my-identifier'
|
||||||
MockProviderMessage = namedtuple('BroadcastProviderMessage', ['id', 'message_number', 'created_at'])
|
MockProviderMessage = namedtuple(
|
||||||
|
'BroadcastProviderMessage', ['id', 'message_number', 'created_at']
|
||||||
|
)
|
||||||
|
|
||||||
provider_messages = [
|
provider_messages = [
|
||||||
MockProviderMessage(uuid.uuid4(), '0000007b', '2020-12-10 11:19:44.130585'),
|
MockProviderMessage(uuid.uuid4(), '0000007b', datetime(2020, 12, 16)),
|
||||||
MockProviderMessage(uuid.uuid4(), '0000004e', '2020-12-10 12:19:44.130585')
|
MockProviderMessage(uuid.uuid4(), '0000004e', datetime(2020, 12, 17))
|
||||||
]
|
]
|
||||||
sent = '2020-12-10 14:19:44.130585'
|
sent = '2020-12-17 14:19:44.130585'
|
||||||
|
|
||||||
ld_client_mock = mocker.patch.object(
|
ld_client_mock = mocker.patch.object(
|
||||||
cbc_proxy_ee,
|
cbc_proxy_ee,
|
||||||
@@ -161,11 +165,11 @@ def test_cbc_proxy_ee_cancel_invokes_function(mocker, cbc_proxy_ee):
|
|||||||
assert payload['references'] == [
|
assert payload['references'] == [
|
||||||
{
|
{
|
||||||
"message_id": str(provider_messages[0].id),
|
"message_id": str(provider_messages[0].id),
|
||||||
"sent": provider_messages[0].created_at
|
"sent": provider_messages[0].created_at.strftime(DATETIME_FORMAT)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"message_id": str(provider_messages[1].id),
|
"message_id": str(provider_messages[1].id),
|
||||||
"sent": provider_messages[1].created_at
|
"sent": provider_messages[1].created_at.strftime(DATETIME_FORMAT)
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
assert payload['sent'] == sent
|
assert payload['sent'] == sent
|
||||||
@@ -233,13 +237,16 @@ def test_cbc_proxy_vodafone_create_and_send_invokes_function(mocker, cbc_proxy_v
|
|||||||
|
|
||||||
def test_cbc_proxy_vodafone_cancel_invokes_function(mocker, cbc_proxy_vodafone):
|
def test_cbc_proxy_vodafone_cancel_invokes_function(mocker, cbc_proxy_vodafone):
|
||||||
identifier = 'my-identifier'
|
identifier = 'my-identifier'
|
||||||
MockProviderMessage = namedtuple('BroadcastProviderMessage', ['id', 'message_number', 'created_at'])
|
MockProviderMessage = namedtuple(
|
||||||
|
'BroadcastProviderMessage',
|
||||||
|
['id', 'message_number', 'created_at']
|
||||||
|
)
|
||||||
|
|
||||||
provider_messages = [
|
provider_messages = [
|
||||||
MockProviderMessage(uuid.uuid4(), 78, '2020-12-10 11:19:44.130585'),
|
MockProviderMessage(uuid.uuid4(), 78, datetime(2020, 12, 16)),
|
||||||
MockProviderMessage(uuid.uuid4(), 123, '2020-12-10 12:19:44.130585')
|
MockProviderMessage(uuid.uuid4(), 123, datetime(2020, 12, 17))
|
||||||
]
|
]
|
||||||
sent = '2020-12-10 14:19:44.130585'
|
sent = '2020-12-18 14:19:44.130585'
|
||||||
|
|
||||||
ld_client_mock = mocker.patch.object(
|
ld_client_mock = mocker.patch.object(
|
||||||
cbc_proxy_vodafone,
|
cbc_proxy_vodafone,
|
||||||
@@ -276,12 +283,12 @@ def test_cbc_proxy_vodafone_cancel_invokes_function(mocker, cbc_proxy_vodafone):
|
|||||||
{
|
{
|
||||||
"message_id": str(provider_messages[0].id),
|
"message_id": str(provider_messages[0].id),
|
||||||
"message_number": '0000004e',
|
"message_number": '0000004e',
|
||||||
"sent": provider_messages[0].created_at
|
"sent": provider_messages[0].created_at.strftime(DATETIME_FORMAT)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"message_id": str(provider_messages[1].id),
|
"message_id": str(provider_messages[1].id),
|
||||||
"message_number": '0000007b',
|
"message_number": '0000007b',
|
||||||
"sent": provider_messages[1].created_at
|
"sent": provider_messages[1].created_at.strftime(DATETIME_FORMAT)
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
assert payload['sent'] == sent
|
assert payload['sent'] == sent
|
||||||
|
|||||||
Reference in New Issue
Block a user