Skip to content

Commit

Permalink
[#1117] Remove legacy user_update tests
Browse files Browse the repository at this point in the history
These have been replaced by new-style tests in ckan/new_tests/
  • Loading branch information
Sean Hammond committed Aug 1, 2013
1 parent 0eb1548 commit ccc47e0
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 186 deletions.
59 changes: 0 additions & 59 deletions ckan/tests/functional/api/test_activity.py
Expand Up @@ -874,54 +874,6 @@ def _update_group(self, group, user):
assert timestamp >= before['time'] and timestamp <= after['time'], \
str(activity['timestamp'])

def _update_user(self, user):
"""
Update the given user and test that the correct activity stream item
and detail are emitted.
"""
response = self.app.post('/api/action/user_show',
json.dumps({'id': user['id']}),
extra_environ={'Authorization': str(user['apikey'])})
response_dict = json.loads(response.body)
assert response_dict['success'] is True
user_dict = response_dict['result']

before = self.record_details(user_dict['id'],
apikey=user_dict['apikey'])

# Update the user.
user_dict['about'] = 'edited'
if not user_dict.get('email'):
user_dict['email'] = 'there has to be a value in email'
self.app.post('/api/action/user_update', json.dumps(user_dict),
extra_environ={'Authorization': str(user['apikey'])})

after = self.record_details(user_dict['id'],
apikey=user_dict['apikey'])

# Find the new activity.
new_activities = find_new_activities(before['user activity stream'],
after['user activity stream'])
assert len(new_activities) == 1, ("There should be 1 new activity in "
"the user's activity stream, but found %i" % len(new_activities))
activity = new_activities[0]

# Check that the new activity has the right attributes.
assert activity['object_id'] == user_dict['id'], (
str(activity['object_id']))
assert activity['user_id'] == user_dict['id'], str(activity['user_id'])
assert activity['activity_type'] == 'changed user', (
str(activity['activity_type']))
if 'id' not in activity:
assert False, "activity object has no id value"
# TODO: Test for the _correct_ revision_id value.
if 'revision_id' not in activity:
assert False, "activity has no revision_id value"
timestamp = datetime_from_string(activity['timestamp'])
assert timestamp >= before['time'] and timestamp <= after['time'], \
str(activity['timestamp'])

def _delete_resources(self, package):
"""
Remove all resources (if any) from the given package, and test that
Expand Down Expand Up @@ -1487,17 +1439,6 @@ def test_create_user(self):
assert len(details) == 0, ("There shouldn't be any activity details"
" for a 'new user' activity")

def test_update_user(self):
"""
Test updated user activity stream.
Test that correct activity stream item is created when users are
updated.
"""
for user in self.users:
self._update_user(user)

def test_create_group(self):

user = self.normal_user
Expand Down
20 changes: 0 additions & 20 deletions ckan/tests/functional/api/test_user.py
Expand Up @@ -80,23 +80,3 @@ def test_user_create_simple(self):
assert 'email' in user_dict
assert 'apikey' in user_dict
assert 'password' not in user_dict

def test_user_update_simple(self):
'''Simple update of a user by themselves.'''
context = {
'model': model,
'session': model.Session,
'user': 'annafan',
}

data_dict = {
'id': 'annafan',
'email': 'anna@example.com',
}

user_dict = logic.get_action('user_update')(context, data_dict)

assert_equal(user_dict['email'], 'anna@example.com')
assert 'apikey' in user_dict
assert 'password' not in user_dict

107 changes: 0 additions & 107 deletions ckan/tests/logic/test_action.py
Expand Up @@ -445,113 +445,6 @@ def test_11_user_create_wrong_password(self):
assert res_obj['error'] == { '__type': 'Validation Error',
'password': ['Your password must be 4 characters or longer']}

def test_12_user_update(self):
normal_user_dict = {'id': self.normal_user.id,
'name': self.normal_user.name,
'fullname': 'Updated normal user full name',
'email': 'me@test.org',
'about':'Updated normal user about'}

sysadmin_user_dict = {'id': self.sysadmin_user.id,
'fullname': 'Updated sysadmin user full name',
'email': 'me@test.org',
'about':'Updated sysadmin user about'}

#Normal users can update themselves
postparams = '%s=1' % json.dumps(normal_user_dict)
res = self.app.post('/api/action/user_update', params=postparams,
extra_environ={'Authorization': str(self.normal_user.apikey)})

res_obj = json.loads(res.body)
assert res_obj['help'].startswith("Update a user account.")
assert res_obj['success'] == True
result = res_obj['result']
assert result['id'] == self.normal_user.id
assert result['name'] == self.normal_user.name
assert result['fullname'] == normal_user_dict['fullname']
assert result['about'] == normal_user_dict['about']
assert 'apikey' in result
assert 'created' in result
assert 'display_name' in result
assert 'number_administered_packages' in result
assert 'number_of_edits' in result
assert not 'password' in result

#Sysadmin users can update themselves
postparams = '%s=1' % json.dumps(sysadmin_user_dict)
res = self.app.post('/api/action/user_update', params=postparams,
extra_environ={'Authorization': str(self.sysadmin_user.apikey)})

res_obj = json.loads(res.body)
assert res_obj['help'].startswith("Update a user account.")
assert res_obj['success'] == True
result = res_obj['result']
assert result['id'] == self.sysadmin_user.id
assert result['name'] == self.sysadmin_user.name
assert result['fullname'] == sysadmin_user_dict['fullname']
assert result['about'] == sysadmin_user_dict['about']

#Sysadmin users can update all users
postparams = '%s=1' % json.dumps(normal_user_dict)
res = self.app.post('/api/action/user_update', params=postparams,
extra_environ={'Authorization': str(self.sysadmin_user.apikey)})

res_obj = json.loads(res.body)
assert res_obj['help'].startswith("Update a user account.")
assert res_obj['success'] == True
result = res_obj['result']
assert result['id'] == self.normal_user.id
assert result['name'] == self.normal_user.name
assert result['fullname'] == normal_user_dict['fullname']
assert result['about'] == normal_user_dict['about']

#Normal users can not update other users
postparams = '%s=1' % json.dumps(sysadmin_user_dict)
res = self.app.post('/api/action/user_update', params=postparams,
extra_environ={'Authorization': str(self.normal_user.apikey)},
status=StatusCodes.STATUS_403_ACCESS_DENIED)

res_obj = json.loads(res.body)
assert res_obj['help'].startswith("Update a user account.")
assert res_obj['error'] == {
'__type': 'Authorization Error',
'message': 'Access denied'
}
assert res_obj['success'] is False

def test_12_user_update_errors(self):
test_calls = (
# Empty name
{'user_dict': {'id': self.normal_user.id,
'name':'',
'email':'test@test.com'},
'messages': [('name','Name must be at least 2 characters long')]},

# Invalid characters in name
{'user_dict': {'id': self.normal_user.id,
'name':'i++%',
'email':'test@test.com'},
'messages': [('name','Url must be purely lowercase alphanumeric')]},
# Existing name
{'user_dict': {'id': self.normal_user.id,
'name':self.sysadmin_user.name,
'email':'test@test.com'},
'messages': [('name','That login name is not available')]},
# Missing email
{'user_dict': {'id': self.normal_user.id,
'name':self.normal_user.name},
'messages': [('email','Missing value')]},
)

for test_call in test_calls:
postparams = '%s=1' % json.dumps(test_call['user_dict'])
res = self.app.post('/api/action/user_update', params=postparams,
extra_environ={'Authorization': str(self.normal_user.apikey)},
status=StatusCodes.STATUS_409_CONFLICT)
res_obj = json.loads(res.body)
for expected_message in test_call['messages']:
assert expected_message[1] in ''.join(res_obj['error'][expected_message[0]])

def test_13_group_list(self):
postparams = '%s=1' % json.dumps({})
res = self.app.post('/api/action/group_list', params=postparams)
Expand Down

0 comments on commit ccc47e0

Please sign in to comment.