Fix up unit test

This commit is contained in:
zandercymatics 2024-05-28 11:17:48 -06:00
parent 23988ad6b3
commit c2dd91215a
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
3 changed files with 52 additions and 12 deletions

View file

@ -119,11 +119,21 @@ class Contact(TimeStampedModel):
self.user.last_name = self.last_name self.user.last_name = self.last_name
updated = True updated = True
# Update middle_name if necessary
if not self.user.middle_name:
self.user.middle_name = self.middle_name
updated = True
# Update phone if necessary # Update phone if necessary
if not self.user.phone: if not self.user.phone:
self.user.phone = self.phone self.user.phone = self.phone
updated = True updated = True
# Update title if necessary
if not self.user.title:
self.user.title = self.title
updated = True
# Save user if any updates were made # Save user if any updates were made
if updated: if updated:
self.user.save() self.user.save()

View file

@ -24,9 +24,11 @@ def handle_profile(sender, instance, **kwargs):
""" """
first_name = getattr(instance, "first_name", "") first_name = getattr(instance, "first_name", "")
middle_name = getattr(instance, "middle_name", "")
last_name = getattr(instance, "last_name", "") last_name = getattr(instance, "last_name", "")
email = getattr(instance, "email", "") email = getattr(instance, "email", "")
phone = getattr(instance, "phone", "") phone = getattr(instance, "phone", "")
title = getattr(instance, "title", "")
is_new_user = kwargs.get("created", False) is_new_user = kwargs.get("created", False)
@ -39,9 +41,11 @@ def handle_profile(sender, instance, **kwargs):
Contact.objects.create( Contact.objects.create(
user=instance, user=instance,
first_name=first_name, first_name=first_name,
middle_name=middle_name,
last_name=last_name, last_name=last_name,
email=email, email=email,
phone=phone, phone=phone,
title=title,
) )
if len(contacts) >= 1 and is_new_user: # a matching contact if len(contacts) >= 1 and is_new_user: # a matching contact

View file

@ -23,15 +23,32 @@ class TestDataUpdates(TestCase):
self.bs_user = User.objects.create() self.bs_user = User.objects.create()
self.contact1 = Contact.objects.create( self.contact1 = Contact.objects.create(
user=self.user1, email="email1@igorville.gov", first_name="first1", last_name="last1" user=self.user1,
email="email1@igorville.gov",
first_name="first1",
last_name="last1",
middle_name="middle1",
title="title1",
) )
self.contact2 = Contact.objects.create( self.contact2 = Contact.objects.create(
user=self.user2, email="email2@igorville.gov", first_name="first2", last_name="last2" user=self.user2,
email="email2@igorville.gov",
first_name="first2",
last_name="last2",
middle_name="middle2",
title="title2",
) )
self.contact3 = Contact.objects.create( self.contact3 = Contact.objects.create(
user=self.user3, email="email3@igorville.gov", first_name="first3", last_name="last3" user=self.user3,
email="email3@igorville.gov",
first_name="first3",
last_name="last3",
middle_name="middle3",
title="title3",
)
self.contact4 = Contact.objects.create(
email="email4@igorville.gov", first_name="first4", last_name="last4", middle_name="middle4", title="title4"
) )
self.contact4 = Contact.objects.create(email="email4@igorville.gov", first_name="first4", last_name="last4")
self.command = Command() self.command = Command()
@ -42,14 +59,15 @@ class TestDataUpdates(TestCase):
Contact.objects.all().delete() Contact.objects.all().delete()
def test_script_updates_linked_users(self): def test_script_updates_linked_users(self):
"""Test the script that copies contacts' first and last names into associated users that """Test the script that copies contact information to the user object"""
are eligible (first or last are blank or undefined)"""
# Set up the users' first and last names here so # Set up the users' first and last names here so
# they that they don't get overwritten by Contact's save() # they that they don't get overwritten by Contact's save()
# User with no first or last names # User with no first or last names
self.user1.first_name = "" self.user1.first_name = ""
self.user1.last_name = "" self.user1.last_name = ""
self.user1.title = "dummytitle"
self.user1.middle_name = "dummymiddle"
self.user1.save() self.user1.save()
# User with a first name but no last name # User with a first name but no last name
@ -87,12 +105,20 @@ class TestDataUpdates(TestCase):
# The user that has no first and last names will get them from the contact # The user that has no first and last names will get them from the contact
self.assertEqual(self.user1.first_name, "first1") self.assertEqual(self.user1.first_name, "first1")
self.assertEqual(self.user1.last_name, "last1") self.assertEqual(self.user1.last_name, "last1")
# The user that has a first but no last will be left alone self.assertEqual(self.user1.middle_name, "middle1")
self.assertEqual(self.user2.first_name, "First name but no last name") self.assertEqual(self.user1.title, "title1")
self.assertEqual(self.user2.last_name, "") # The user that has a first but no last will be updated
# The user that has a first and a last will be left alone self.assertEqual(self.user2.first_name, "first2")
self.assertEqual(self.user3.first_name, "An existing first name") self.assertEqual(self.user2.last_name, "last2")
self.assertEqual(self.user3.last_name, "An existing last name") self.assertEqual(self.user2.middle_name, "middle2")
self.assertEqual(self.user2.title, "title2")
# The user that has a first and a last will be updated
self.assertEqual(self.user3.first_name, "first3")
self.assertEqual(self.user3.last_name, "last3")
self.assertEqual(self.user3.middle_name, "middle3")
self.assertEqual(self.user3.title, "title3")
# The unlinked user will be left alone # The unlinked user will be left alone
self.assertEqual(self.user4.first_name, "") self.assertEqual(self.user4.first_name, "")
self.assertEqual(self.user4.last_name, "") self.assertEqual(self.user4.last_name, "")
self.assertEqual(self.user4.middle_name, None)
self.assertEqual(self.user4.title, None)