From 541461705f9b6e0197687f861cc1c5bdc278f960 Mon Sep 17 00:00:00 2001 From: Raymond Jessop Date: Fri, 18 Apr 2025 19:10:01 -0500 Subject: [PATCH] updated tests.py again --- django_aws_ses/models.py | 14 ++------------ django_aws_ses/tests.py | 3 ++- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/django_aws_ses/models.py b/django_aws_ses/models.py index 4f97600..ec87f03 100644 --- a/django_aws_ses/models.py +++ b/django_aws_ses/models.py @@ -15,8 +15,7 @@ from django.utils.http import urlsafe_base64_encode User = get_user_model() logger = logging.getLogger(__name__) - -@receiver(post_save, sender=Site) +@receiver(post_save, sender=Site, dispatch_uid="update_awsses_settings") def update_awsses_settings(sender, instance, created, **kwargs): """Create or update AwsSesSettings when a Site is saved.""" try: @@ -26,8 +25,7 @@ def update_awsses_settings(sender, instance, created, **kwargs): except Exception as e: logger.error(f"Failed to save AwsSesSettings for site {instance.id}: {e}") - -@receiver(post_save, sender=User) +@receiver(post_save, sender=User, dispatch_uid="update_awsses_user") def update_awsses_user(sender, instance, created, **kwargs): """Create or update AwsSesUserAddon when a User is saved.""" try: @@ -37,7 +35,6 @@ def update_awsses_user(sender, instance, created, **kwargs): except Exception as e: logger.error(f"Failed to save AwsSesUserAddon for user {instance.id}: {e}") - class AwsSesSettings(models.Model): """AWS SES configuration settings for a site.""" site = models.OneToOneField(Site, on_delete=models.CASCADE, related_name='awssessettings') @@ -53,7 +50,6 @@ class AwsSesSettings(models.Model): def __str__(self): return f"AWS SES Settings for {self.site.domain}" - class AwsSesUserAddon(models.Model): """Additional AWS SES data for a user, including unsubscribe status.""" user = models.OneToOneField(User, related_name='aws_ses', on_delete=models.CASCADE) @@ -91,7 +87,6 @@ class AwsSesUserAddon(models.Model): hash_value = self.unsubscribe_hash_generator() return reverse('django_aws_ses:aws_ses_unsubscribe', kwargs={"uuid": uuid, "hash": hash_value}) - class SESStat(models.Model): """Daily statistics for AWS SES email sending.""" date = models.DateField(unique=True, db_index=True) @@ -108,7 +103,6 @@ class SESStat(models.Model): def __str__(self): return self.date.strftime("%Y-%m-%d") - class BounceRecord(models.Model): """Record of an email bounce event from AWS SES.""" timestamp = models.DateTimeField(auto_now_add=True, db_index=True) @@ -130,7 +124,6 @@ class BounceRecord(models.Model): def __str__(self): return f"Bounce: {self.email} ({self.bounce_type}, {self.timestamp})" - class ComplaintRecord(models.Model): """Record of an email complaint event from AWS SES.""" timestamp = models.DateTimeField(auto_now_add=True, db_index=True) @@ -147,7 +140,6 @@ class ComplaintRecord(models.Model): def __str__(self): return f"Complaint: {self.email} ({self.feedback_type}, {self.timestamp})" - class SendRecord(models.Model): """Record of an email send or delivery event from AWS SES.""" SEND = 'Send' @@ -174,7 +166,6 @@ class SendRecord(models.Model): def __str__(self): return f"Send: {self.source} to {self.destination} ({self.status}, {self.timestamp})" - class UnknownRecord(models.Model): """Record of unrecognized AWS SES events.""" timestamp = models.DateTimeField(auto_now_add=True, db_index=True) @@ -189,7 +180,6 @@ class UnknownRecord(models.Model): def __str__(self): return f"Unknown Event: {self.event_type} ({self.timestamp})" - class BlackListedDomains(models.Model): """Domains blacklisted for email sending.""" domain = models.CharField(max_length=255, unique=True, db_index=True) diff --git a/django_aws_ses/tests.py b/django_aws_ses/tests.py index 47ae7eb..4a0e480 100644 --- a/django_aws_ses/tests.py +++ b/django_aws_ses/tests.py @@ -45,7 +45,8 @@ class DjangoAwsSesTests(TestCase): self.user = User.objects.create_user( username='testuser', email='test@example.com', password='testpass' ) - self.ses_addon = AwsSesUserAddon.objects.create(user=self.user) + # Retrieve the AwsSesUserAddon created by the post_save signal + self.ses_addon = AwsSesUserAddon.objects.get(user=self.user) @patch('boto3.client') def test_email_sending(self, mock_boto_client):