updated tests.py again
This commit is contained in:
parent
df3c123236
commit
900a8e412f
|
@ -7,6 +7,7 @@ from django.utils.http import urlsafe_base64_encode
|
||||||
from django.utils.encoding import force_bytes
|
from django.utils.encoding import force_bytes
|
||||||
from unittest.mock import patch, Mock
|
from unittest.mock import patch, Mock
|
||||||
import json
|
import json
|
||||||
|
import uuid
|
||||||
|
|
||||||
from .backends import SESBackend
|
from .backends import SESBackend
|
||||||
from .views import handle_bounce, HandleUnsubscribe
|
from .views import handle_bounce, HandleUnsubscribe
|
||||||
|
@ -43,6 +44,7 @@ class DjangoAwsSesTests(TestCase):
|
||||||
)
|
)
|
||||||
# Ensure AwsSesSettings exists
|
# Ensure AwsSesSettings exists
|
||||||
if not AwsSesSettings.objects.filter(site=self.site).exists():
|
if not AwsSesSettings.objects.filter(site=self.site).exists():
|
||||||
|
print(f"Creating AwsSesSettings for site {self.site.id}")
|
||||||
AwsSesSettings.objects.create(
|
AwsSesSettings.objects.create(
|
||||||
site=self.site,
|
site=self.site,
|
||||||
access_key='test-key',
|
access_key='test-key',
|
||||||
|
@ -50,6 +52,12 @@ class DjangoAwsSesTests(TestCase):
|
||||||
region_name='us-east-1',
|
region_name='us-east-1',
|
||||||
region_endpoint='email.us-east-1.amazonaws.com'
|
region_endpoint='email.us-east-1.amazonaws.com'
|
||||||
)
|
)
|
||||||
|
# Verify AwsSesSettings creation
|
||||||
|
try:
|
||||||
|
settings_obj = AwsSesSettings.objects.get(site=self.site)
|
||||||
|
print(f"AwsSesSettings created: {settings_obj}")
|
||||||
|
except AwsSesSettings.DoesNotExist:
|
||||||
|
print("Failed to verify AwsSesSettings creation")
|
||||||
# Create test user
|
# Create test user
|
||||||
self.user = User.objects.create_user(
|
self.user = User.objects.create_user(
|
||||||
username='testuser', email='test@example.com', password='testpass'
|
username='testuser', email='test@example.com', password='testpass'
|
||||||
|
@ -65,6 +73,11 @@ class DjangoAwsSesTests(TestCase):
|
||||||
'MessageId': 'test-id',
|
'MessageId': 'test-id',
|
||||||
'ResponseMetadata': {'RequestId': 'test-request-id'}
|
'ResponseMetadata': {'RequestId': 'test-request-id'}
|
||||||
}
|
}
|
||||||
|
mock_ses.get_send_quota.return_value = {
|
||||||
|
'MaxSendRate': 10.0,
|
||||||
|
'Max24HourSend': 20000.0,
|
||||||
|
'SentLast24Hours': 1000.0
|
||||||
|
}
|
||||||
mock_boto_client.return_value = mock_ses
|
mock_boto_client.return_value = mock_ses
|
||||||
|
|
||||||
backend = SESBackend()
|
backend = SESBackend()
|
||||||
|
@ -124,9 +137,10 @@ class DjangoAwsSesTests(TestCase):
|
||||||
|
|
||||||
def test_unsubscribe_confirmation(self):
|
def test_unsubscribe_confirmation(self):
|
||||||
"""Test unsubscribe confirmation page and action."""
|
"""Test unsubscribe confirmation page and action."""
|
||||||
uuid = urlsafe_base64_encode(force_bytes(str(self.user.pk)))
|
user_uuid = str(uuid.uuid1())
|
||||||
|
uuid_b64 = urlsafe_base64_encode(user_uuid.encode())
|
||||||
hash_value = self.ses_addon.unsubscribe_hash_generator()
|
hash_value = self.ses_addon.unsubscribe_hash_generator()
|
||||||
url = reverse('django_aws_ses:aws_ses_unsubscribe', kwargs={'uuid': uuid, 'hash': hash_value})
|
url = reverse('django_aws_ses:aws_ses_unsubscribe', kwargs={'uuid': user_uuid, 'hash': hash_value})
|
||||||
|
|
||||||
# Test GET (confirmation page)
|
# Test GET (confirmation page)
|
||||||
response = self.client.get(url)
|
response = self.client.get(url)
|
||||||
|
@ -145,9 +159,10 @@ class DjangoAwsSesTests(TestCase):
|
||||||
"""Test re-subscribe confirmation action."""
|
"""Test re-subscribe confirmation action."""
|
||||||
self.ses_addon.unsubscribe = True
|
self.ses_addon.unsubscribe = True
|
||||||
self.ses_addon.save()
|
self.ses_addon.save()
|
||||||
uuid = urlsafe_base64_encode(force_bytes(str(self.user.pk)))
|
user_uuid = str(uuid.uuid1())
|
||||||
|
uuid_b64 = urlsafe_base64_encode(user_uuid.encode())
|
||||||
hash_value = self.ses_addon.unsubscribe_hash_generator()
|
hash_value = self.ses_addon.unsubscribe_hash_generator()
|
||||||
url = reverse('django_aws_ses:aws_ses_unsubscribe', kwargs={'uuid': uuid, 'hash': hash_value})
|
url = reverse('django_aws_ses:aws_ses_unsubscribe', kwargs={'uuid': user_uuid, 'hash': hash_value})
|
||||||
|
|
||||||
response = self.client.post(url, {'action': 'resubscribe'})
|
response = self.client.post(url, {'action': 'resubscribe'})
|
||||||
self.ses_addon.refresh_from_db()
|
self.ses_addon.refresh_from_db()
|
||||||
|
|
Loading…
Reference in New Issue