Merge pull request #386 from dod-ccpo/edit-user-#160268937
Edit user #160268937
This commit is contained in:
@@ -2,7 +2,7 @@ import pytest
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.users import Users
|
||||
from atst.domain.exceptions import NotFoundError, AlreadyExistsError
|
||||
from atst.domain.exceptions import NotFoundError, AlreadyExistsError, UnauthorizedError
|
||||
|
||||
DOD_ID = "my_dod_id"
|
||||
|
||||
@@ -52,20 +52,34 @@ def test_get_user_by_dod_id():
|
||||
assert user == new_user
|
||||
|
||||
|
||||
def test_update_user():
|
||||
def test_update_role():
|
||||
new_user = Users.create(DOD_ID, "developer")
|
||||
updated_user = Users.update(new_user.id, "ccpo")
|
||||
updated_user = Users.update_role(new_user.id, "ccpo")
|
||||
|
||||
assert updated_user.atat_role.name == "ccpo"
|
||||
|
||||
|
||||
def test_update_nonexistent_user():
|
||||
def test_update_role_with_nonexistent_user():
|
||||
Users.create(DOD_ID, "developer")
|
||||
with pytest.raises(NotFoundError):
|
||||
Users.update(uuid4(), "ccpo")
|
||||
Users.update_role(uuid4(), "ccpo")
|
||||
|
||||
|
||||
def test_update_existing_user_with_nonexistent_role():
|
||||
new_user = Users.create(DOD_ID, "developer")
|
||||
with pytest.raises(NotFoundError):
|
||||
Users.update(new_user.id, "nonexistent")
|
||||
Users.update_role(new_user.id, "nonexistent")
|
||||
|
||||
|
||||
def test_update_user():
|
||||
new_user = Users.create(DOD_ID, "developer")
|
||||
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, "developer")
|
||||
with pytest.raises(UnauthorizedError) as excinfo:
|
||||
Users.update(new_user, {"dod_id": "1234567890"})
|
||||
|
||||
assert "dod_id" in str(excinfo.value)
|
||||
|
@@ -48,6 +48,18 @@ class UserFactory(Base):
|
||||
last_name = factory.Faker("last_name")
|
||||
atat_role = factory.SubFactory(RoleFactory)
|
||||
dod_id = factory.LazyFunction(lambda: "".join(random.choices(string.digits, k=10)))
|
||||
phone_number = factory.LazyFunction(
|
||||
lambda: "".join(random.choices(string.digits, k=10))
|
||||
)
|
||||
service_branch = factory.LazyFunction(
|
||||
lambda: random.choices([k for k, v in SERVICE_BRANCHES if k is not None])[0]
|
||||
)
|
||||
citizenship = "United States"
|
||||
designation = "military"
|
||||
date_latest_training = factory.LazyFunction(
|
||||
lambda: datetime.date.today()
|
||||
+ datetime.timedelta(days=-(random.randrange(1, 365)))
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_atat_role(cls, atat_role_name, **kwargs):
|
||||
|
25
tests/routes/test_users.py
Normal file
25
tests/routes/test_users.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from flask import url_for
|
||||
|
||||
from atst.domain.users import Users
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
|
||||
def test_user_can_view_profile(user_session, client):
|
||||
user = UserFactory.create()
|
||||
user_session(user)
|
||||
response = client.get(url_for("users.user"))
|
||||
assert user.email in response.data.decode()
|
||||
|
||||
|
||||
def test_user_can_update_profile(user_session, client):
|
||||
user = UserFactory.create()
|
||||
user_session(user)
|
||||
new_data = {**user.to_dictionary(), "first_name": "chad", "last_name": "vader"}
|
||||
new_data["date_latest_training"] = new_data["date_latest_training"].strftime(
|
||||
"%m/%d/%Y"
|
||||
)
|
||||
client.post(url_for("users.update_user"), data=new_data)
|
||||
updated_user = Users.get_by_dod_id(user.dod_id)
|
||||
assert updated_user.first_name == "chad"
|
||||
assert updated_user.last_name == "vader"
|
Reference in New Issue
Block a user