mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-21 03:49:22 +02:00
test registrar_middleware for multiple_portfolios
This commit is contained in:
parent
8667f0b61b
commit
01f05c7fde
1 changed files with 68 additions and 9 deletions
|
@ -363,6 +363,69 @@ class TestPortfolio(WebTest):
|
||||||
self.assertContains(success_result_page, "6 Downing st")
|
self.assertContains(success_result_page, "6 Downing st")
|
||||||
self.assertContains(success_result_page, "London")
|
self.assertContains(success_result_page, "London")
|
||||||
|
|
||||||
|
@less_console_noise_decorator
|
||||||
|
def test_portfolio_in_session_when_organization_feature_active(self):
|
||||||
|
"""When organization_feature flag is true and user has a portfolio,
|
||||||
|
the portfolio should be set in session."""
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
||||||
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
|
user=self.user, portfolio=self.portfolio, roles=portfolio_roles
|
||||||
|
)
|
||||||
|
with override_flag("organization_feature", active=True):
|
||||||
|
response = self.client.get(reverse("home"))
|
||||||
|
# Ensure that middleware processes the session
|
||||||
|
session_middleware = SessionMiddleware(lambda request: None)
|
||||||
|
session_middleware.process_request(response.wsgi_request)
|
||||||
|
response.wsgi_request.session.save()
|
||||||
|
# Access the session via the request
|
||||||
|
session = response.wsgi_request.session
|
||||||
|
# Check if the 'portfolio' session variable exists
|
||||||
|
assert 'portfolio' in session, "Portfolio session variable should exist."
|
||||||
|
# Check the value of the 'portfolio' session variable
|
||||||
|
assert session['portfolio'] == self.portfolio, "Portfolio session variable has the wrong value."
|
||||||
|
|
||||||
|
@less_console_noise_decorator
|
||||||
|
def test_portfolio_in_session_is_none_when_organization_feature_inactive(self):
|
||||||
|
"""When organization_feature flag is false and user has a portfolio,
|
||||||
|
the portfolio should be set to None in session.
|
||||||
|
This test also satisfies the conidition when multiple_portfolios flag
|
||||||
|
is false and user has a portfolio, so won't add a redundant test for that."""
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
||||||
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
|
user=self.user, portfolio=self.portfolio, roles=portfolio_roles
|
||||||
|
)
|
||||||
|
response = self.client.get(reverse("home"))
|
||||||
|
# Ensure that middleware processes the session
|
||||||
|
session_middleware = SessionMiddleware(lambda request: None)
|
||||||
|
session_middleware.process_request(response.wsgi_request)
|
||||||
|
response.wsgi_request.session.save()
|
||||||
|
# Access the session via the request
|
||||||
|
session = response.wsgi_request.session
|
||||||
|
# Check if the 'portfolio' session variable exists
|
||||||
|
assert 'portfolio' in session, "Portfolio session variable should exist."
|
||||||
|
# Check the value of the 'portfolio' session variable
|
||||||
|
self.assertIsNone(session['portfolio'])
|
||||||
|
|
||||||
|
@less_console_noise_decorator
|
||||||
|
def test_portfolio_in_session_is_none_when_organization_feature_active_and_no_portfolio(self):
|
||||||
|
"""When organization_feature flag is true and user does not have a portfolio,
|
||||||
|
the portfolio should be set to None in session."""
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
with override_flag("organization_feature", active=True):
|
||||||
|
response = self.client.get(reverse("home"))
|
||||||
|
# Ensure that middleware processes the session
|
||||||
|
session_middleware = SessionMiddleware(lambda request: None)
|
||||||
|
session_middleware.process_request(response.wsgi_request)
|
||||||
|
response.wsgi_request.session.save()
|
||||||
|
# Access the session via the request
|
||||||
|
session = response.wsgi_request.session
|
||||||
|
# Check if the 'portfolio' session variable exists
|
||||||
|
assert 'portfolio' in session, "Portfolio session variable should exist."
|
||||||
|
# Check the value of the 'portfolio' session variable
|
||||||
|
self.assertIsNone(session['portfolio'])
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_portfolio_in_session_when_multiple_portfolios_active(self):
|
def test_portfolio_in_session_when_multiple_portfolios_active(self):
|
||||||
"""When multiple_portfolios flag is true and user has a portfolio,
|
"""When multiple_portfolios flag is true and user has a portfolio,
|
||||||
|
@ -386,15 +449,11 @@ class TestPortfolio(WebTest):
|
||||||
assert session['portfolio'] == self.portfolio, "Portfolio session variable has the wrong value."
|
assert session['portfolio'] == self.portfolio, "Portfolio session variable has the wrong value."
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_portfolio_in_session_when_organization_feature_active(self):
|
def test_portfolio_in_session_is_none_when_multiple_portfolios_active_and_no_portfolio(self):
|
||||||
"""When organization_feature flag is true and user has a portfolio,
|
"""When multiple_portfolios flag is true and user does not have a portfolio,
|
||||||
the portfolio should be set in session."""
|
the portfolio should be set to None in session."""
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
with override_flag("multiple_portfolios", active=True):
|
||||||
UserPortfolioPermission.objects.get_or_create(
|
|
||||||
user=self.user, portfolio=self.portfolio, roles=portfolio_roles
|
|
||||||
)
|
|
||||||
with override_flag("organization_feature", active=True):
|
|
||||||
response = self.client.get(reverse("home"))
|
response = self.client.get(reverse("home"))
|
||||||
# Ensure that middleware processes the session
|
# Ensure that middleware processes the session
|
||||||
session_middleware = SessionMiddleware(lambda request: None)
|
session_middleware = SessionMiddleware(lambda request: None)
|
||||||
|
@ -405,4 +464,4 @@ class TestPortfolio(WebTest):
|
||||||
# Check if the 'portfolio' session variable exists
|
# Check if the 'portfolio' session variable exists
|
||||||
assert 'portfolio' in session, "Portfolio session variable should exist."
|
assert 'portfolio' in session, "Portfolio session variable should exist."
|
||||||
# Check the value of the 'portfolio' session variable
|
# Check the value of the 'portfolio' session variable
|
||||||
assert session['portfolio'] == self.portfolio, "Portfolio session variable has the wrong value."
|
self.assertIsNone(session['portfolio'])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue