users have permission sets for site-wide perms
This commit is contained in:
@@ -14,7 +14,7 @@ from tests.factories import (
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def ccpo():
|
||||
return UserFactory.from_atat_role("ccpo")
|
||||
return UserFactory.create_ccpo()
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
|
@@ -151,7 +151,7 @@ def test_owner_can_view_portfolio_members(portfolio, portfolio_owner):
|
||||
|
||||
@pytest.mark.skip(reason="no ccpo access yet")
|
||||
def test_ccpo_can_view_portfolio_members(portfolio, portfolio_owner):
|
||||
ccpo = UserFactory.from_atat_role("ccpo")
|
||||
ccpo = UserFactory.create_ccpo()
|
||||
assert Portfolios.get_with_members(ccpo, portfolio.id)
|
||||
|
||||
|
||||
@@ -277,7 +277,7 @@ def test_for_user_does_not_return_inactive_portfolios(portfolio, portfolio_owner
|
||||
|
||||
@pytest.mark.skip(reason="CCPO status not fully implemented")
|
||||
def test_for_user_returns_all_portfolios_for_ccpo(portfolio, portfolio_owner):
|
||||
sam = UserFactory.from_atat_role("ccpo")
|
||||
sam = UserFactory.create_ccpo()
|
||||
PortfolioFactory.create()
|
||||
|
||||
sams_portfolios = Portfolios.for_user(sam)
|
||||
@@ -297,7 +297,7 @@ def test_get_for_update_information(portfolio, portfolio_owner):
|
||||
assert portfolio == admin_ws
|
||||
|
||||
# TODO: implement ccpo roles
|
||||
# ccpo = UserFactory.from_atat_role("ccpo")
|
||||
# ccpo = UserFactory.create_ccpo()
|
||||
# assert Portfolios.get_for_update_information(ccpo, portfolio.id)
|
||||
|
||||
developer = UserFactory.create()
|
||||
|
@@ -4,81 +4,64 @@ from uuid import uuid4
|
||||
from atst.domain.users import Users
|
||||
from atst.domain.exceptions import NotFoundError, AlreadyExistsError, UnauthorizedError
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
DOD_ID = "my_dod_id"
|
||||
|
||||
|
||||
def test_create_user():
|
||||
user = Users.create(DOD_ID, "default")
|
||||
assert user.atat_role.name == "default"
|
||||
user = Users.create(DOD_ID)
|
||||
assert user.dod_id == DOD_ID
|
||||
|
||||
|
||||
def test_create_user_with_existing_email():
|
||||
Users.create(DOD_ID, "default", email="thisusersemail@usersRus.com")
|
||||
Users.create(DOD_ID, email="thisusersemail@usersRus.com")
|
||||
with pytest.raises(AlreadyExistsError):
|
||||
Users.create(DOD_ID, "ccpo", email="thisusersemail@usersRus.com")
|
||||
Users.create(DOD_ID, email="thisusersemail@usersRus.com")
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="no more roles")
|
||||
def test_create_user_with_nonexistent_role():
|
||||
with pytest.raises(NotFoundError):
|
||||
Users.create(DOD_ID, "nonexistent")
|
||||
|
||||
|
||||
def test_get_or_create_nonexistent_user():
|
||||
user = Users.get_or_create_by_dod_id(DOD_ID, atat_role_name="default")
|
||||
user = Users.get_or_create_by_dod_id(DOD_ID)
|
||||
assert user.dod_id == DOD_ID
|
||||
|
||||
|
||||
def test_get_or_create_existing_user():
|
||||
Users.get_or_create_by_dod_id(DOD_ID, atat_role_name="default")
|
||||
user = Users.get_or_create_by_dod_id(DOD_ID, atat_role_name="default")
|
||||
assert user
|
||||
fact_user = UserFactory.create()
|
||||
user = Users.get_or_create_by_dod_id(fact_user.dod_id)
|
||||
assert user == fact_user
|
||||
|
||||
|
||||
def test_get_user():
|
||||
new_user = Users.create(DOD_ID, "default")
|
||||
new_user = UserFactory.create()
|
||||
user = Users.get(new_user.id)
|
||||
assert user.id == new_user.id
|
||||
|
||||
|
||||
def test_get_nonexistent_user():
|
||||
Users.create(DOD_ID, "default")
|
||||
with pytest.raises(NotFoundError):
|
||||
Users.get(uuid4())
|
||||
|
||||
|
||||
def test_get_user_by_dod_id():
|
||||
new_user = Users.create(DOD_ID, "default")
|
||||
user = Users.get_by_dod_id(DOD_ID)
|
||||
new_user = UserFactory.create()
|
||||
user = Users.get_by_dod_id(new_user.dod_id)
|
||||
assert user == new_user
|
||||
|
||||
|
||||
def test_update_role():
|
||||
new_user = Users.create(DOD_ID, "default")
|
||||
updated_user = Users.update_role(new_user.id, "ccpo")
|
||||
|
||||
assert updated_user.atat_role.name == "ccpo"
|
||||
|
||||
|
||||
def test_update_role_with_nonexistent_user():
|
||||
Users.create(DOD_ID, "default")
|
||||
with pytest.raises(NotFoundError):
|
||||
Users.update_role(uuid4(), "ccpo")
|
||||
|
||||
|
||||
def test_update_existing_user_with_nonexistent_role():
|
||||
new_user = Users.create(DOD_ID, "default")
|
||||
with pytest.raises(NotFoundError):
|
||||
Users.update_role(new_user.id, "nonexistent")
|
||||
|
||||
|
||||
def test_update_user():
|
||||
new_user = Users.create(DOD_ID, "default")
|
||||
new_user = UserFactory.create()
|
||||
updated_user = Users.update(new_user, {"first_name": "Jabba"})
|
||||
assert updated_user.first_name == "Jabba"
|
||||
|
||||
|
||||
def test_update_user_with_dod_id():
|
||||
new_user = Users.create(DOD_ID, "default")
|
||||
new_user = UserFactory.create()
|
||||
with pytest.raises(UnauthorizedError) as excinfo:
|
||||
Users.update(new_user, {"dod_id": "1234567890"})
|
||||
|
||||
|
@@ -89,7 +89,7 @@ class UserFactory(Base):
|
||||
email = factory.Faker("email")
|
||||
first_name = factory.Faker("first_name")
|
||||
last_name = factory.Faker("last_name")
|
||||
atat_role = factory.LazyFunction(lambda: PermissionSets.get("default"))
|
||||
permission_sets = []
|
||||
dod_id = factory.LazyFunction(random_dod_id)
|
||||
phone_number = factory.LazyFunction(random_phone_number)
|
||||
service_branch = factory.LazyFunction(random_service_branch)
|
||||
@@ -101,9 +101,8 @@ class UserFactory(Base):
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_atat_role(cls, atat_role_name, **kwargs):
|
||||
role = PermissionSets.get(atat_role_name)
|
||||
return cls.create(atat_role=role, **kwargs)
|
||||
def create_ccpo(cls, **kwargs):
|
||||
return cls.create(permission_sets=PermissionSets.get_all(), **kwargs)
|
||||
|
||||
|
||||
class PortfolioFactory(Base):
|
||||
|
@@ -42,7 +42,7 @@ def test_user_without_permission_has_no_budget_report_link(client, user_session)
|
||||
@pytest.mark.skip(reason="Temporarily no add activity log link")
|
||||
def test_user_with_permission_has_activity_log_link(client, user_session):
|
||||
portfolio = PortfolioFactory.create()
|
||||
ccpo = UserFactory.from_atat_role("ccpo")
|
||||
ccpo = UserFactory.create_ccpo()
|
||||
admin = UserFactory.create()
|
||||
PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=admin, status=PortfolioRoleStatus.ACTIVE
|
||||
|
@@ -52,7 +52,7 @@ def test_successful_login_redirect_ccpo(client, monkeypatch):
|
||||
role = PermissionSets.get("ccpo")
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.get_user",
|
||||
lambda *args: UserFactory.create(atat_role=role),
|
||||
lambda *args: UserFactory.create(),
|
||||
)
|
||||
|
||||
resp = _login(client)
|
||||
|
Reference in New Issue
Block a user