mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-04 17:01:56 +02:00
Add unit test
This commit is contained in:
parent
a5a0c136df
commit
e94412e7a5
4 changed files with 35 additions and 20 deletions
|
@ -2,7 +2,6 @@
|
|||
|
||||
import time
|
||||
import logging
|
||||
from typing import Any
|
||||
from urllib.parse import urlparse, urlunparse, urlencode
|
||||
|
||||
|
||||
|
@ -270,19 +269,24 @@ class CreateOrUpdateOrganizationTypeHelper:
|
|||
return True
|
||||
|
||||
|
||||
def replace_url_queryparams(url_to_modify: str, query_params: dict[Any, list]):
|
||||
def replace_url_queryparams(url_to_modify: str, query_params, convert_list_to_csv=False):
|
||||
"""
|
||||
Replaces the query parameters of a given URL.
|
||||
Because this replaces them, this can be used to either add, delete, or modify.
|
||||
Args:
|
||||
url_to_modify (str): The URL whose query parameters need to be modified.
|
||||
query_params (dict): Dictionary of query parameters to use.
|
||||
convert_list_to_csv (bool): If the queryparam contains a list of items,
|
||||
convert it to a csv representation instead.
|
||||
Returns:
|
||||
str: The modified URL with the updated query parameters.
|
||||
"""
|
||||
|
||||
# Ensure each key in query_params maps to a single value, not a list
|
||||
query_params = {k: v[0] if isinstance(v, list) else v for k, v in query_params.items()}
|
||||
if convert_list_to_csv:
|
||||
for key, value in query_params.items():
|
||||
if isinstance(value, list):
|
||||
query_params[key] = ",".join(value)
|
||||
|
||||
# Split the URL into parts
|
||||
url_parts = list(urlparse(url_to_modify))
|
||||
|
@ -293,4 +297,4 @@ def replace_url_queryparams(url_to_modify: str, query_params: dict[Any, list]):
|
|||
# Reassemble the URL
|
||||
new_url = urlunparse(url_parts)
|
||||
|
||||
return new_url
|
||||
return new_url
|
||||
|
|
|
@ -10,21 +10,7 @@ Edit your User Profile |
|
|||
{% block content %}
|
||||
<main id="main-content" class="grid-container">
|
||||
<div class="grid-col desktop:grid-offset-2 desktop:grid-col-8">
|
||||
<a href="{% if not return_to_request %}{% url 'home' %}{% else %}{% url 'domain-request:' %}{% endif %}" class="breadcrumb__back">
|
||||
<svg class="usa-icon" aria-hidden="true" focusable="false" role="img">
|
||||
<use xlink:href="{% static 'img/sprite.svg' %}#arrow_back"></use>
|
||||
</svg>
|
||||
{% if not return_to_request %}
|
||||
<p class="margin-left-05 margin-top-0 margin-bottom-0 line-height-sans-1">
|
||||
Back to manage your domains
|
||||
</p>
|
||||
{% else %}
|
||||
<p class="margin-left-05 margin-top-0 margin-bottom-0 line-height-sans-1">
|
||||
Go back to your domain request
|
||||
</p>
|
||||
{% endif %}
|
||||
</a>
|
||||
{# messages block is under the back breadcrumb link #}
|
||||
{# messages block #}
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div class="usa-alert usa-alert--{{ message.tags }} usa-alert--slim margin-bottom-3">
|
||||
|
@ -35,6 +21,21 @@ Edit your User Profile |
|
|||
{% endfor %}
|
||||
{% endif %}
|
||||
{% include "includes/form_errors.html" with form=form %}
|
||||
|
||||
<a href="{% if not return_to_request %}{% url 'home' %}{% else %}{% url 'domain-request:' %}{% endif %}" class="breadcrumb__back">
|
||||
<svg class="usa-icon" aria-hidden="true" focusable="false" role="img">
|
||||
<use xlink:href="{% static 'img/sprite.svg' %}#arrow_back"></use>
|
||||
</svg>
|
||||
{% if not return_to_request %}
|
||||
<p class="margin-left-05 margin-top-0 margin-bottom-0 line-height-sans-1">
|
||||
Back to manage your domains
|
||||
</p>
|
||||
{% else %}
|
||||
<p class="margin-left-05 margin-top-0 margin-bottom-0 line-height-sans-1">
|
||||
Go back to your domain request
|
||||
</p>
|
||||
{% endif %}
|
||||
</a>
|
||||
|
||||
<h1>Your profile</h1>
|
||||
<p>We <a href="{% public_site_url 'domains/requirements/#what-.gov-domain-registrants-must-do' %}" target="_blank">require</a> that you maintain accurate contact information. The details you provide will only be used to support the administration of .gov and won’t be made public.</p>
|
||||
|
|
|
@ -597,6 +597,16 @@ class UserProfileTests(TestWithUser, WebTest):
|
|||
response = self.client.get("/user-profile")
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
@less_console_noise_decorator
|
||||
def test_user_profile_back_button_when_coming_from_domain_request(self):
|
||||
"""tests user profile when profile_feature is on,
|
||||
and when they are redirected from the domain request page"""
|
||||
with override_flag("profile_feature", active=True):
|
||||
response = self.client.get("/user-profile?return_to_request=True")
|
||||
self.assertContains(response, "Your profile")
|
||||
self.assertContains(response, "Go back to your domain request")
|
||||
self.assertNotContains(response, "Back to manage your domains")
|
||||
|
||||
@less_console_noise_decorator
|
||||
def test_domain_detail_profile_feature_on(self):
|
||||
"""test that domain detail view when profile_feature is on"""
|
||||
|
|
|
@ -71,7 +71,7 @@ class UserProfileView(UserProfilePermissionView, FormMixin):
|
|||
|
||||
# Preserve queryparams and add them back to the url
|
||||
base_url = reverse("user-profile")
|
||||
new_redirect = replace_url_queryparams(base_url, query_params) if query_params else base_url
|
||||
new_redirect = replace_url_queryparams(base_url, query_params, convert_list_to_csv=True)
|
||||
return new_redirect
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue