Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use inbox for the originator to send to uk #460

Merged
merged 1 commit into from
Sep 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ class Settings(BaseSettings):
# Have to use a US number as the originator to send to the US
# https://support.messagebird.com/hc/en-us/articles/208747865-United-States
us_send_number = '15744445663'
gb_send_number = '12048170659'
canada_send_number = '12048170659'
inbox_send_number = 'inbox'

@validator('pg_dsn')
def heroku_ready_pg_dsn(cls, v):
Expand Down
7 changes: 6 additions & 1 deletion src/worker/sms.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,12 @@ def __init__(self, ctx: dict, group_id: int, company_id: int, recipient: SmsReci
self.m: SmsSendModel = m
self.tags = list(set(self.recipient.tags + self.m.tags + [str(self.m.uid)]))
self.messagebird: MessageBird = ctx['messagebird']
self.from_name = self.settings.gb_send_number if self.m.country_code != 'US' else self.settings.us_send_number
if self.m.country_code == 'US':
self.from_name = self.settings.us_send_number
elif self.m.country_code == 'CA':
self.from_name = self.settings.canada_send_number
else:
self.from_name = self.settings.inbox_send_number

async def run(self):
sms_data = await self._sms_prep()
Expand Down
30 changes: 28 additions & 2 deletions tests/test_sms.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def test_send_message(cli, tmpdir, worker, loop):
"to: Number(number='+447891123856', country_code='44', "
"number_formatted='+44 7891 123856', descr=None, is_mobile=True)"
) in msg_file
assert f'\nfrom_name: {settings.gb_send_number}\n' in msg_file
assert f'\nfrom_name: {settings.inbox_send_number}\n' in msg_file
assert '\nmessage:\nthis is a message bar\n' in msg_file
assert '\nlength: SmsLength(length=21, parts=1)\n' in msg_file

Expand Down Expand Up @@ -59,6 +59,32 @@ def test_send_message_usa(cli, settings, tmpdir, worker, loop):
assert '\nlength: SmsLength(length=21, parts=1)\n' in msg_file


def test_send_message_canada(cli, settings, tmpdir, worker, loop):
data = {
'uid': '69eb85e8-1504-40aa-94ff-75bb65fd8d72',
'company_code': 'foobar',
'country_code': 'CA',
'from_name': 'foobar send',
'method': 'sms-test',
'main_template': 'this is a message {{ foo }}',
'recipients': [{'number': '+1 818 337 3095', 'context': {'foo': 'bar'}}],
}
r = cli.post('/send/sms/', json=data, headers={'Authorization': 'testing-key'})
assert r.status_code == 201, r.text
assert worker.test_run() == 1
assert len(tmpdir.listdir()) == 1
f = '69eb85e8-1504-40aa-94ff-75bb65fd8d72-18183373095.txt'
assert str(tmpdir.listdir()[0]).endswith(f)
msg_file = tmpdir.join(f).read()
assert (
"to: Number(number='+18183373095', country_code='1', "
"number_formatted='+1 818-337-3095', descr=None, is_mobile=True)"
) in msg_file
assert f'\nfrom_name: {settings.canada_send_number}\n' in msg_file
assert '\nmessage:\nthis is a message bar\n' in msg_file
assert '\nlength: SmsLength(length=21, parts=1)\n' in msg_file


def test_validate_number(cli, tmpdir):
data = {
'country_code': 'US',
Expand Down Expand Up @@ -325,7 +351,7 @@ def test_link_shortening(cli, tmpdir, sync_db: SyncDb, worker, loop):
f = '69eb85e8-1504-40aa-94ff-75bb65fd8d75-447891123856.txt'
assert str(tmpdir.listdir()[0]).endswith(f)
msg_file = tmpdir.join(f).read()
assert f'\nfrom_name: {settings.gb_send_number}\n' in msg_file
assert f'\nfrom_name: {settings.inbox_send_number}\n' in msg_file
assert '\nmessage:\nthis is a message click.example.com/l' in msg_file
token = re.search('message click.example.com/l(.+?)\n', msg_file).groups()[0]
assert len(token) == 12
Expand Down
Loading