Skip to content
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
5 changes: 4 additions & 1 deletion batch_notification_processor/batch_processor.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import logging
import hashlib
import time
import uuid
import oracledb
from oracle_database import OracleDatabase, DatabaseConnectionError, DatabaseFetchError
Expand Down Expand Up @@ -48,4 +50,5 @@ def mark_batch_as_sent(self, recipients):

@staticmethod
def generate_message_reference():
return str(uuid.uuid4())
str_val = str(time.time())
return str(uuid.UUID(hashlib.md5(str_val.encode()).hexdigest()))
14 changes: 14 additions & 0 deletions tests/unit/batch_notification_processor/test_batch_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from oracle_database import OracleDatabase, DatabaseFetchError
from recipient import Recipient
import pytest
import re
from unittest.mock import MagicMock, patch
import uuid

Expand Down Expand Up @@ -103,3 +104,16 @@ def test_mark_batch_as_sent(self, mock_oracle_database, db_config, recipients):
((recipients[0],),),
((recipients[1],),),
]

def test_generate_message_reference(self, mock_oracle_database, db_config):
subject = BatchProcessor(batch_id, db_config)

message_reference = subject.generate_message_reference()

assert isinstance(message_reference, str)
assert len(message_reference) == 36
assert re.match(r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", message_reference)
for _ in range(100):
assert message_reference != subject.generate_message_reference()