fix: duplicate entry fixes

This commit is contained in:
Kira
2022-03-14 17:06:52 -04:00
parent 97f05b4e4a
commit 6d51428e4a
2 changed files with 8 additions and 6 deletions

View File

@@ -2,6 +2,7 @@
Tests for SAMLProviderConfig endpoints
"""
import copy
import re
from uuid import uuid4
from django.urls import reverse
from django.contrib.sites.models import Site
@@ -96,7 +97,7 @@ class SAMLProviderConfigTests(APITestCase):
assert results[0]['entity_id'] == SINGLE_PROVIDER_CONFIG['entity_id']
assert results[0]['metadata_source'] == SINGLE_PROVIDER_CONFIG['metadata_source']
assert response.data['results'][0]['country'] == SINGLE_PROVIDER_CONFIG['country']
assert results[0]['display_name'] == "saml-test-ep-1"
assert re.match(r"saml-test-slug-\d{4}", results[0]['display_name'])
assert SAMLProviderConfig.objects.count() == 1
def test_get_one_config_by_enterprise_uuid_invalid_uuid(self):

View File

@@ -4,8 +4,9 @@ Signal handlers for program enrollments
import logging
import datetime
from django.db.models.signals import post_save
from django.db.models.signals import pre_save, post_save
from django.dispatch import receiver
from social_django.models import UserSocialAuth
@@ -48,11 +49,12 @@ def generate_default_display_name(self):
"""
Returns a default display name for SamlProviderConfig.
"""
return f'{self.prefix}-{self.slug}-{self.id}'
t = datetime.datetime.now()
return f'{self.prefix}-{self.slug}-{t.minute}{t.second}'
@receiver(post_save, sender=SAMLProviderConfig)
def save_default_display_name(sender, instance, created, **kwargs): # lint-amnesty, pylint: disable=unused-argument
@receiver(pre_save, sender=SAMLProviderConfig)
def save_default_display_name(sender, instance, **kwargs): # lint-amnesty, pylint: disable=unused-argument
"""
Post-save signal that sets default display name if one is not provided
"""
@@ -60,7 +62,6 @@ def save_default_display_name(sender, instance, created, **kwargs): # lint-amne
# check if display_name is None, empty, or just spaces
if not (this_display_name and this_display_name.strip()):
instance.display_name = generate_default_display_name(instance)
instance.save()
def matriculate_learner(user, uid):