mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-19 10:59:21 +02:00
Lint
This commit is contained in:
parent
8febad976d
commit
e7e3df0422
6 changed files with 107 additions and 99 deletions
|
@ -69,7 +69,7 @@ class OpenIdConnectBackend(ModelBackend):
|
|||
# Overwrite first_name and last_name if not empty string
|
||||
for key, value in kwargs.items():
|
||||
# Check if the key is not first_name or last_name or value is not empty string
|
||||
if key not in ['first_name', 'last_name'] or value:
|
||||
if key not in ["first_name", "last_name"] or value:
|
||||
setattr(user, key, value)
|
||||
user.save()
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ from django.utils import timezone
|
|||
from registrar.models import User
|
||||
from ..backends import OpenIdConnectBackend # Adjust the import path based on your project structure
|
||||
|
||||
class OpenIdConnectBackendTestCase(TestCase):
|
||||
|
||||
class OpenIdConnectBackendTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.backend = OpenIdConnectBackend()
|
||||
self.kwargs = {
|
||||
|
|
|
@ -58,7 +58,7 @@ def openid(request):
|
|||
request.session["next"] = request.GET.get("next", "/")
|
||||
|
||||
try:
|
||||
logger.info('openid() calls create_authn_request in oidc')
|
||||
logger.info("openid() calls create_authn_request in oidc")
|
||||
return CLIENT.create_authn_request(request.session)
|
||||
except Exception as err:
|
||||
return error_page(request, err)
|
||||
|
@ -72,22 +72,23 @@ def login_callback(request):
|
|||
# test for need for identity verification and if it is satisfied
|
||||
# if not satisfied, redirect user to login with stepped up acr_value
|
||||
if requires_step_up_auth(userinfo):
|
||||
logger.info('login_callback() calls get_step_up_acr_value and create_authn_request in oidc')
|
||||
logger.info("login_callback() calls get_step_up_acr_value and create_authn_request in oidc")
|
||||
# add acr_value to request.session
|
||||
request.session["acr_value"] = CLIENT.get_step_up_acr_value()
|
||||
return CLIENT.create_authn_request(request.session)
|
||||
|
||||
logger.info(f'login_callback() before calling authenticate: {userinfo}')
|
||||
logger.info(f"login_callback() before calling authenticate: {userinfo}")
|
||||
|
||||
try:
|
||||
user_in_db = User.objects.get(username=userinfo["sub"])
|
||||
|
||||
if user_in_db:
|
||||
logger.info(f"This user exists in the DB (before authenticate): {user_in_db.first_name} {user_in_db.last_name}")
|
||||
logger.info(
|
||||
f"This user exists in the DB (before authenticate): {user_in_db.first_name} {user_in_db.last_name}"
|
||||
)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
user = authenticate(request=request, **userinfo)
|
||||
if user:
|
||||
login(request, user)
|
||||
|
|
|
@ -105,7 +105,7 @@ class Command(BaseCommand):
|
|||
f"""{TerminalColors.YELLOW}
|
||||
> Found linked user for contact:
|
||||
{contact} {contact.email} {contact.first_name} {contact.last_name}
|
||||
> The linked user is {eligible_user}
|
||||
> The linked user is {eligible_user} {eligible_user.username}
|
||||
{TerminalColors.ENDC}""", # noqa
|
||||
)
|
||||
|
||||
|
@ -113,8 +113,10 @@ class Command(BaseCommand):
|
|||
# ---- LET'S KEEP A LIGHT TOUCH
|
||||
if not eligible_user.first_name or not eligible_user.last_name:
|
||||
processed_user = eligible_user
|
||||
processed_user.first_name = contact.first_name
|
||||
processed_user.last_name = contact.last_name
|
||||
# (expression has type "str | None", variable has type "str | int | Combinable")
|
||||
# so we'll ignore type
|
||||
processed_user.first_name = contact.first_name # type: ignore
|
||||
processed_user.last_name = contact.last_name # type: ignore
|
||||
processed_user.save()
|
||||
|
||||
return (
|
||||
|
@ -150,7 +152,6 @@ class Command(BaseCommand):
|
|||
processed_users,
|
||||
):
|
||||
for contact in Contact.objects.all():
|
||||
|
||||
# DEBUG:
|
||||
TerminalHelper.print_conditional(
|
||||
debug_on,
|
||||
|
|
|
@ -5,88 +5,96 @@ from registrar.models import (
|
|||
Contact,
|
||||
)
|
||||
|
||||
from django.core.management import call_command
|
||||
from unittest.mock import patch
|
||||
|
||||
from registrar.management.commands.copy_names_from_contacts_to_users import Command
|
||||
|
||||
class TestOrganizationMigration(TestCase):
|
||||
|
||||
class TestDataUpdates(TestCase):
|
||||
def setUp(self):
|
||||
"""Defines the file name of migration_json and the folder its contained in"""
|
||||
"""We cannot setup the user details because contacts will override the first and last names in its save method
|
||||
so we will initiate the users, setup the contacts and link them, and leave the rest of the setup for the test(s).
|
||||
"""
|
||||
|
||||
self.user1 = User.objects.create(username="user1")
|
||||
self.user2 = User.objects.create(username="user2")
|
||||
self.user3 = User.objects.create(username="user3")
|
||||
self.userX = User.objects.create(username="user4")
|
||||
# The last user created triggers the creation of a contact and attaches itself to it. @Neil wth is going on?
|
||||
# This bs_user defuses that situation so we can test the code.
|
||||
self.bs_user = User.objects.create()
|
||||
|
||||
# self.user1, _ = User.objects.get_or_create(username="user1")
|
||||
# self.user2 = User.objects.create(username="user2", first_name="Joey", last_name="")
|
||||
# self.user3 = User.objects.create(username="user3", first_name="a special first name", last_name="a special last name")
|
||||
# self.userX = User.objects.create(username="emailX@igorville.gov", first_name="firstX", last_name="lastX")
|
||||
|
||||
# self.contact1, _ = Contact.objects.get_or_create(user=self.user1, email="email1@igorville.gov", first_name="first1", last_name="last1")
|
||||
# self.contact2 = Contact.objects.create(user=self.user2, email="email2@igorville.gov", first_name="first2", last_name="last2")
|
||||
# self.contact3 = Contact.objects.create(user=None, email="email3@igorville.gov", first_name="first3", last_name="last3")
|
||||
# self.contact4 = Contact.objects.create(user=None, email="email4@igorville.gov", first_name="first4", last_name="last4")
|
||||
|
||||
# self.contact1 = Contact.objects.create(email="email1@igorville.gov", first_name="first1", last_name="last1")
|
||||
# self.contact2 = Contact.objects.create(email="email2@igorville.gov", first_name="first2", last_name="last2")
|
||||
# self.contact3 = Contact.objects.create(email="email3@igorville.gov", first_name="first3", last_name="last3")
|
||||
# self.contact4 = Contact.objects.create(email="email4@igorville.gov", first_name="first4", last_name="last4")
|
||||
|
||||
# self.user1 = User.objects.create(contact=self.contact1)
|
||||
# self.user2 = User.objects.create(contact=self.contact2, username="user2", first_name="Joey", last_name="")
|
||||
# self.user3 = User.objects.create(username="user3", first_name="a special first name", last_name="a special last name")
|
||||
# self.userX = User.objects.create(username="emailX@igorville.gov", first_name="firstX", last_name="lastX")
|
||||
|
||||
self.contact1 = Contact.objects.create(
|
||||
user=self.user1, email="email1@igorville.gov", first_name="first1", last_name="last1"
|
||||
)
|
||||
self.contact2 = Contact.objects.create(
|
||||
user=self.user2, email="email2@igorville.gov", first_name="first2", last_name="last2"
|
||||
)
|
||||
self.contact3 = Contact.objects.create(
|
||||
user=self.user3, email="email3@igorville.gov", first_name="first3", last_name="last3"
|
||||
)
|
||||
self.contact4 = Contact.objects.create(email="email4@igorville.gov", first_name="first4", last_name="last4")
|
||||
|
||||
self.command = Command()
|
||||
|
||||
def tearDown(self):
|
||||
"""Deletes all DB objects related to migrations"""
|
||||
# Delete users
|
||||
"""Clean up"""
|
||||
# Delete users and contacts
|
||||
User.objects.all().delete()
|
||||
Contact.objects.all().delete()
|
||||
|
||||
def test_script_updates_linked_users(self):
|
||||
"""Test the script that copies contacts' first and last names into associated users that
|
||||
are eligible (first or last are blank or undefined)"""
|
||||
|
||||
user1, _ = User.objects.get_or_create(username="user1")
|
||||
contact1, _ = Contact.objects.get_or_create(user=user1, email="email1@igorville.gov", first_name="first1", last_name="last1")
|
||||
# Set up the users' first and last names here so
|
||||
# they that they don't get overwritten by Contact's save()
|
||||
# User with no first or last names
|
||||
self.user1.first_name = ""
|
||||
self.user1.last_name = ""
|
||||
self.user1.save()
|
||||
|
||||
# User with a first name but no last name
|
||||
self.user2.last_name = ""
|
||||
self.user2.save()
|
||||
|
||||
# self.user1.first_name = ""
|
||||
# self.user1.last_name = ""
|
||||
# self.user2.last_name = ""
|
||||
# self.user1.save()
|
||||
# self.user2.save()
|
||||
# User with a first and last name
|
||||
self.user3.first_name = "An existing first name"
|
||||
self.user3.last_name = "An existing last name"
|
||||
self.user3.save()
|
||||
|
||||
# users we SKIPPED
|
||||
# Unlinked user
|
||||
# To make this test useful, we will set the last_name to ""
|
||||
self.userX.first_name = "Unlinked user's first name"
|
||||
self.userX.last_name = ""
|
||||
self.userX.save()
|
||||
|
||||
# Call the parent method the same way we do it in the script
|
||||
skipped_contacts = []
|
||||
# users we found that are linked to contacts
|
||||
eligible_users = []
|
||||
# users we PROCESSED
|
||||
processed_users = []
|
||||
(
|
||||
skipped_contacts,
|
||||
eligible_users,
|
||||
processed_users,
|
||||
) = self.command.process_contacts(
|
||||
True,
|
||||
# Set debugging to False
|
||||
False,
|
||||
skipped_contacts,
|
||||
eligible_users,
|
||||
processed_users,
|
||||
)
|
||||
|
||||
# self.user1.refresh_from_db()
|
||||
# self.user2.refresh_from_db()
|
||||
# self.user3.refresh_from_db()
|
||||
# self.userX.refresh_from_db()
|
||||
|
||||
self.assertEqual(user1.first_name, "first1")
|
||||
self.assertEqual(user1.last_name, "last1")
|
||||
# self.assertEqual(self.user2.first_name, "first2")
|
||||
# self.assertEqual(self.user2.last_name, "last2")
|
||||
# self.assertEqual(self.user3.first_name, "a special first name")
|
||||
# self.assertEqual(self.user3.last_name, "a special last name")
|
||||
# self.assertEqual(self.userX.first_name, "firstX")
|
||||
# self.assertEqual(self.userX.last_name, "lastX")
|
||||
|
||||
|
||||
|
||||
# Trigger DB refresh
|
||||
self.user1.refresh_from_db()
|
||||
self.user2.refresh_from_db()
|
||||
self.user3.refresh_from_db()
|
||||
self.userX.refresh_from_db()
|
||||
|
||||
# Asserts
|
||||
self.assertEqual(self.user1.first_name, "first1")
|
||||
self.assertEqual(self.user1.last_name, "last1")
|
||||
self.assertEqual(self.user2.first_name, "first2")
|
||||
self.assertEqual(self.user2.last_name, "last2")
|
||||
self.assertEqual(self.user3.first_name, "An existing first name")
|
||||
self.assertEqual(self.user3.last_name, "An existing last name")
|
||||
self.assertEqual(self.userX.first_name, "Unlinked user's first name")
|
||||
self.assertEqual(self.userX.last_name, "")
|
||||
|
|
|
@ -657,7 +657,6 @@ class TestUser(TestCase):
|
|||
|
||||
|
||||
class TestContact(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.email = "mayor@igorville.gov"
|
||||
self.user, _ = User.objects.get_or_create(email=self.email, first_name="Rachid", last_name="Mrad")
|
||||
|
@ -700,4 +699,3 @@ class TestContact(TestCase):
|
|||
# Updating the contact's email does not propagate
|
||||
self.assertEqual(self.contact.email, "joey.baloney@diaperville.com")
|
||||
self.assertEqual(self.user.email, "mayor@igorville.gov")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue