Add tests for getting own user accounts.

This commit is contained in:
Dorian 2017-03-02 21:09:29 -05:00
parent b2f115498b
commit 103d11b654
2 changed files with 35 additions and 19 deletions

View File

@ -73,13 +73,20 @@ def create_new_user_response(user_role, jwt_token, api_base_uri):
) )
@bdd.given(parsers.parse('I get an {user_role} user'), target_fixture='user_response') def parse_self_other(text):
@bdd.given(parsers.parse('I get a {user_role} user'), target_fixture='user_response') return text.lower() == 'my'
def get_existing_user_response(user_role, jwt_token, api_base_uri, db_engine):
existing_user = USER_TEMPLATES['target_data']['non-existent']
if not user_role == 'non-existent': @bdd.given(parsers.parse('I get {self_classifier:self_other} {user_role} user', {'self_other': parse_self_other}),
target_fixture='user_response')
def get_user_response(self_classifier, user_role, jwt_token, api_base_uri, db_engine):
if self_classifier:
existing_user = create_user_in_db(db_engine, USER_TEMPLATES['requester'][user_role])
elif not self_classifier and not user_role == 'non-existent':
existing_user = create_user_in_db(db_engine, USER_TEMPLATES['target_data'][user_role]) existing_user = create_user_in_db(db_engine, USER_TEMPLATES['target_data'][user_role])
else:
existing_user = USER_TEMPLATES['target_data']['non-existent']
return requests.get( return requests.get(
url=f'{api_base_uri}/api/users/{existing_user["username"]}', url=f'{api_base_uri}/api/users/{existing_user["username"]}',
@ -98,14 +105,17 @@ def assert_create_user_response(user_role, create_user_response):
assert create_user_response.json() == expected_user_creation_response assert create_user_response.json() == expected_user_creation_response
@bdd.then(parsers.parse('I can get an {user_role} user profile')) @bdd.then(parsers.parse('I can get {self_classifier:self_other} {user_role} user profile',
@bdd.then(parsers.parse('I can get a {user_role} user profile')) {'self_other': parse_self_other}))
def assert_user_profile(user_role, user_response, db_engine): def assert_user_profile(self_classifier, user_role, user_response, db_engine):
# TODO: Add in actual user profiles... # TODO: Add in actual user profiles...
existing_user = USER_TEMPLATES['target_data']['non-existent'] if self_classifier:
if not user_role == 'non-existent': existing_user = create_user_in_db(db_engine, USER_TEMPLATES['requester'][user_role])
elif not self_classifier and not user_role == 'non-existent':
existing_user = create_user_in_db(db_engine, USER_TEMPLATES['target_data'][user_role]) existing_user = create_user_in_db(db_engine, USER_TEMPLATES['target_data'][user_role])
else:
existing_user = USER_TEMPLATES['target_data']['non-existent']
assert user_response.status_code == http.HTTPStatus.OK assert user_response.status_code == http.HTTPStatus.OK
expected_user_creation_response = existing_user expected_user_creation_response = existing_user

View File

@ -45,6 +45,11 @@ Scenario: Admin user can get an existing editor user
And I get an editor user And I get an editor user
Then I can get an editor user profile Then I can get an editor user profile
Scenario: Admin user can get own profile
Given I am an admin user
And I get my admin user
Then I can get my admin user profile
Scenario: Admin user can not get an non-existent user Scenario: Admin user can not get an non-existent user
Given I am an admin user Given I am an admin user
And I get an non-existent user And I get an non-existent user
@ -59,11 +64,11 @@ Scenario: Editor user can not get an existing editor user that is not me
Given I am an editor user Given I am an editor user
And I get an editor user And I get an editor user
Then I get an unauthorized response Then I get an unauthorized response
#
#Scenario: Editor user can get my own profile Scenario: Editor user can get own profile
# Given I am an editor user Given I am an editor user
# And I get myself And I get my editor user
# Then I can get my own user profile Then I can get my editor user profile
Scenario: Subscriber user can not get an existing admin user Scenario: Subscriber user can not get an existing admin user
Given I am a subscriber user Given I am a subscriber user
@ -80,10 +85,11 @@ Scenario: Subscriber user can not get an subscriber user that is not me
And I get an subscriber user And I get an subscriber user
Then I get an unauthorized response Then I get an unauthorized response
#Scenario: Subscriber user can get my own profile Scenario: Subscriber user can get own profile
# Given I am a subscriber user Given I am a subscriber user
# And I get myself And I get my subscriber user
# Then I can get my own user profile Then I can get my subscriber user profile
# #
#Scenario: Admin user can modify an admin user #Scenario: Admin user can modify an admin user
# Given I am an admin user # Given I am an admin user