def test_build_user_missing_key(parsed_user, key): ## GIVEN a parsed_user (dict) containing user information ## WHEN deleting key parsed_user.pop(key) ## THEN calling build_user() will raise KeyError with pytest.raises(KeyError): build_user(parsed_user)
def user(context, institute_id, user_name, user_mail, admin): """Add a user to the database.""" adapter = context.obj['adapter'] institutes = [] for institute in institute_id: institute_obj = adapter.institute(institute_id=institute) if not institute_obj: LOG.warning("Institute % does not exist", institute) context.abort() institutes.append(institute) roles = [] if admin: LOG.info("User is admin") roles.append('admin') user_info = dict(email=user_mail.lower(), name=user_name, roles=roles, institutes=institutes) user_obj = build_user(user_info) try: adapter.add_user(user_obj) except Exception as err: LOG.warning(err) context.abort()
def user(institute_id, user_name, user_mail, admin, user_id=None): """Add a user to the database.""" adapter = store institutes = [] for institute in institute_id: institute_obj = adapter.institute(institute_id=institute) if not institute_obj: LOG.warning("Institute % does not exist", institute) raise click.Abort() institutes.append(institute) roles = [] if admin: LOG.info("User is admin") roles.append("admin") user_info = dict( email=user_mail.lower(), name=user_name, roles=roles, institutes=institutes, id=user_id, ) user_obj = build_user(user_info) try: adapter.add_user(user_obj) except Exception as err: LOG.warning(err) raise click.Abort()
def user(context, institute_id, user_name, user_mail, admin): """Add a user to the database.""" adapter = context.obj['adapter'] institutes = [] for institute in institute_id: institute_obj = adapter.institute(institute_id=institute) if not institute_obj: LOG.warning("Institute % does not exist", institute) context.abort() institutes.append(institute) roles = [] if admin: LOG.info("User is admin") roles.append('admin') user_info = dict(email=user_mail, name=user_name, roles=roles, institutes=institutes) user_obj = build_user(user_info) try: adapter.add_user(user_obj) except Exception as err: LOG.warning(err) context.abort()
def test_update_user(real_adapter): adapter = real_adapter ## GIVEN an adapter with a user user_info = { "email": "*****@*****.**", "location": "here", "name": "Clark Kent", "institutes": ["test-1"], } user_obj = build_user(user_info) user_obj = adapter.add_user(user_obj) assert user_obj["institutes"] == ["test-1"] ## WHEN updating a user user_info["institutes"].append("test-2") user_obj = build_user(user_info) adapter.update_user(user_obj) ## THEN assert that the user is in the database updated_user = adapter.user_collection.find_one() assert set(updated_user["institutes"]) == set(["test-1", "test-2"])
def test_build_user(parsed_user): ## GIVEN some parsed user information ## WHEN building a user object user_obj = build_user(parsed_user) ## THEN assert that the build was correct assert user_obj["_id"] == user_obj["email"] == parsed_user["email"] assert user_obj["name"] == user_obj["name"] assert isinstance(user_obj["created_at"], datetime.datetime)
def test_build_user(parsed_user): ## GIVEN some parsed user information ## WHEN building a user object user_obj = build_user(parsed_user) ## THEN assert that the build was correct assert user_obj['_id'] == user_obj['email'] == parsed_user['email'] assert user_obj['name'] == user_obj['name'] assert isinstance(user_obj['created_at'], datetime.datetime)
def test_get_user_email(adapter): user_info = { "email": "*****@*****.**", "id": "clke01", "location": "here", "name": "Clark Kent", "institutes": ["test-1"], } user_obj = build_user(user_info) user_obj = adapter.add_user(user_obj) ## WHEN fetching the user with email user = adapter.user(email="*****@*****.**") ## THEN assert that the user is fetched assert user
def test_insert_user(adapter): user_info = { "email": "*****@*****.**", "location": "here", "name": "Clark Kent", "institutes": ["test-1"], } user_obj = build_user(user_info) ## GIVEN a empty adapter assert adapter.user_collection.find_one() is None ## WHEN inserting a user user_obj = adapter.add_user(user_obj) ## THEN assert that the user is in the database assert adapter.user_collection.find_one()
def test_get_insert_user(adapter): user_info = { 'email': '*****@*****.**', 'location': 'here', 'name': 'Clark Kent', 'institutes': ['test-1'], } user_obj = build_user(user_info) ## GIVEN a empty adapter assert adapter.user(email=user_info['email']) is None ## WHEN insaerting a user user_obj = adapter.add_user(user_obj) ## THEN assert that the user is in the database assert user_obj['_id'] == user_info['email']
def test_get_users(adapter): institutes = ["test-1", "test-2"] ## GIVEN an adapter with multiple users for i, ins in enumerate(institutes, 1): user_info = { "email": "clark.kent{}@mail.com".format(i), "id": "clke0" + str(i), "location": "here", "name": "Clark Kent", "institutes": [ins], } user_obj = build_user(user_info) user_obj = adapter.add_user(user_obj) ## WHEN fetching all users users = adapter.users() ## THEN assert that both users are fetched assert sum(1 for user in users) == len(institutes)
def test_get_insert_user(adapter): user_info = { 'email': '*****@*****.**', 'location': 'here', 'name': 'Clark Kent', 'institutes': ['test-1'], } user_obj = build_user(user_info) ## GIVEN a empty adapter assert adapter.user(email=user_info['email']) is None ## WHEN insaerting a user user_obj = adapter.add_user(user_obj) ## THEN assert that the user is in the database assert user_obj['_id'] == user_info['email']
def test_delete_user(adapter): institutes = ["test-1", "test-2"] ## GIVEN an adapter with two users for i, ins in enumerate(institutes, 1): user_info = { "email": "clark.kent{}@mail.com".format(i), "id": "clke0" + str(i), "location": "here", "name": "Clark Kent", "institutes": [ins], } user_obj = build_user(user_info) user_obj = adapter.add_user(user_obj) assert sum(1 for user in adapter.users()) == 2 ## WHEN deleting a user adapter.delete_user(email="*****@*****.**") ## THEN assert that there is only ine user left assert sum(1 for user in adapter.users()) == 1
def user_obj(request, parsed_user): """Return a User object""" _user_obj = build_user(parsed_user) return _user_obj