Make the requirement for dod_id explicit when creating a user

This commit is contained in:
Montana 2018-10-01 13:43:02 -04:00
parent 19d939578c
commit 685c0e3658
2 changed files with 11 additions and 11 deletions

View File

@ -28,11 +28,11 @@ class Users(object):
return user return user
@classmethod @classmethod
def create(cls, atat_role_name=None, **kwargs): def create(cls, dod_id, atat_role_name=None, **kwargs):
atat_role = Roles.get(atat_role_name) atat_role = Roles.get(atat_role_name)
try: try:
user = User(atat_role=atat_role, **kwargs) user = User(dod_id=dod_id, atat_role=atat_role, **kwargs)
db.session.add(user) db.session.add(user)
db.session.commit() db.session.commit()
except IntegrityError: except IntegrityError:
@ -46,7 +46,7 @@ class Users(object):
try: try:
user = Users.get_by_dod_id(dod_id) user = Users.get_by_dod_id(dod_id)
except NotFoundError: except NotFoundError:
user = Users.create(dod_id=dod_id, **kwargs) user = Users.create(dod_id, **kwargs)
db.session.add(user) db.session.add(user)
db.session.commit() db.session.commit()

View File

@ -8,13 +8,13 @@ DOD_ID = "my_dod_id"
def test_create_user(): def test_create_user():
user = Users.create("developer", dod_id=DOD_ID) user = Users.create(DOD_ID, "developer")
assert user.atat_role.name == "developer" assert user.atat_role.name == "developer"
def test_create_user_with_nonexistent_role(): def test_create_user_with_nonexistent_role():
with pytest.raises(NotFoundError): with pytest.raises(NotFoundError):
Users.create("nonexistent", dod_id=DOD_ID) Users.create(DOD_ID, "nonexistent")
def test_get_or_create_nonexistent_user(): def test_get_or_create_nonexistent_user():
@ -29,37 +29,37 @@ def test_get_or_create_existing_user():
def test_get_user(): def test_get_user():
new_user = Users.create("developer", dod_id=DOD_ID) new_user = Users.create(DOD_ID, "developer")
user = Users.get(new_user.id) user = Users.get(new_user.id)
assert user.id == new_user.id assert user.id == new_user.id
def test_get_nonexistent_user(): def test_get_nonexistent_user():
Users.create("developer", dod_id=DOD_ID) Users.create(DOD_ID, "developer")
with pytest.raises(NotFoundError): with pytest.raises(NotFoundError):
Users.get(uuid4()) Users.get(uuid4())
def test_get_user_by_dod_id(): def test_get_user_by_dod_id():
new_user = Users.create("developer", dod_id=DOD_ID) new_user = Users.create(DOD_ID, "developer")
user = Users.get_by_dod_id(DOD_ID) user = Users.get_by_dod_id(DOD_ID)
assert user == new_user assert user == new_user
def test_update_user(): def test_update_user():
new_user = Users.create("developer", dod_id=DOD_ID) new_user = Users.create(DOD_ID, "developer")
updated_user = Users.update(new_user.id, "ccpo") updated_user = Users.update(new_user.id, "ccpo")
assert updated_user.atat_role.name == "ccpo" assert updated_user.atat_role.name == "ccpo"
def test_update_nonexistent_user(): def test_update_nonexistent_user():
Users.create("developer", dod_id=DOD_ID) Users.create(DOD_ID, "developer")
with pytest.raises(NotFoundError): with pytest.raises(NotFoundError):
Users.update(uuid4(), "ccpo") Users.update(uuid4(), "ccpo")
def test_update_existing_user_with_nonexistent_role(): def test_update_existing_user_with_nonexistent_role():
new_user = Users.create("developer", dod_id=DOD_ID) new_user = Users.create(DOD_ID, "developer")
with pytest.raises(NotFoundError): with pytest.raises(NotFoundError):
Users.update(new_user.id, "nonexistent") Users.update(new_user.id, "nonexistent")