instructions for bulk testing and change delivery receipt delay to 2 minutes

This commit is contained in:
Kenneth Kehl
2023-09-28 14:27:16 -07:00
parent a6c563c239
commit bebce829af
3 changed files with 37 additions and 1 deletions

View File

@@ -23,6 +23,10 @@ from app.models import (
NOTIFICATION_TECHNICAL_FAILURE,
)
# This is the amount of time to wait after sending an sms message before we check the aws logs and look for delivery
# receipts
DELIVERY_RECEIPT_DELAY_IN_SECONDS = 120
@notify_celery.task(
bind=True,
@@ -96,7 +100,9 @@ def deliver_sms(self, notification_id):
message_id = send_to_providers.send_sms_to_provider(notification)
# We have to put it in UTC. For other timezones, the delay
# will be ignored and it will fire immediately (although this probably only affects developer testing)
my_eta = datetime.utcnow() + timedelta(seconds=300)
my_eta = datetime.utcnow() + timedelta(
seconds=DELIVERY_RECEIPT_DELAY_IN_SECONDS
)
check_sms_delivery_receipt.apply_async(
[message_id, notification_id, now], eta=my_eta, queue=QueueNames.CHECK_SMS
)

20
docs/bulk_testing.md Normal file
View File

@@ -0,0 +1,20 @@
How to Run a Bulk Send Simulation
==================================
Assuming that you have followed all steps to set up localstack successfully, do the following:
1. Create an sms template that requires no inputs from the user (i.e. the csv file will only have phone numbers)
2. Uncomment the test 'test_generate_csv_for_bulk_testing' in app/test_utils.py
3. Run `make test` on this project. This will generate the csv file for the bulk test.
4. If you are not a platform admin for your service when you run locally, do the following:
- >psql -d notification_api
- update users set platform_admin='t';
- \q
- sign out
- sign in.
- Go to settings and set the organization for your service to 'Broadcast services' (scroll down to platform admin)
- Go to settings and set your service to 'live' (scroll down to platform admin)
5. Run your app 'locally'. I.e. run `make run-procfile` on this project and `make run-flask` on the admin project
6. Sign in. Verify you are running with localstack. I.e., you do NOT receive a text message on sign in. Instead,
you see your authentication code in green in the api logs
7. Go to send messages and upload your csv file and send your 100000 messages

View File

@@ -90,3 +90,13 @@ def test_get_uuid_string_or_none():
def test_get_public_notify_type_text():
assert get_public_notify_type_text(UPLOAD_DOCUMENT) == "document"
# This method is used for simulating bulk sends. We use localstack and run on a developer's machine to do the
# simulation. Please see docs->bulk_testing.md for instructions.
# def test_generate_csv_for_bulk_testing():
# f = open("bulktest_100000.csv", "w")
# f.write("phone number\n")
# for _ in range(0, 100000):
# f.write("16615555555\n")
# f.close()