Add tests for osusers.admin

This commit raises the test coverage for osusers.admin to 100% by adding
tests for UserAdmin, GroupAdmin, SshPublicKeyCreationForm and
SshPublicKeyAdmin. The commit adds a refactoring TODO to
SshPublicKeyAdmin.perform_delete_selected because the asynchronous
background task should be launched from a signal handler.
This commit is contained in:
Jan Dittberner 2015-12-05 22:23:25 +00:00
parent fb1f31a9bc
commit 4f39c0d2c4
2 changed files with 170 additions and 7 deletions

View file

@ -178,7 +178,7 @@ class UserAdmin(admin.ModelAdmin):
"""
actions = super(UserAdmin, self).get_actions(request)
if 'delete_selected' in actions:
if 'delete_selected' in actions: # pragma: no cover
del actions['delete_selected']
return actions
@ -219,7 +219,7 @@ class GroupAdmin(admin.ModelAdmin):
"""
actions = super(GroupAdmin, self).get_actions(request)
if 'delete_selected' in actions:
if 'delete_selected' in actions: # pragma: no cover
del actions['delete_selected']
return actions
@ -257,6 +257,7 @@ class SshPublicKeyCreationForm(forms.ModelForm):
self.add_error(
'publickeytext',
forms.ValidationError(DUPLICATE_SSH_PUBLIC_KEY_FOR_USER))
super(SshPublicKeyCreationForm, self).clean()
def save(self, commit=True):
"""
@ -347,13 +348,14 @@ class SshPublicKeyAdmin(admin.ModelAdmin):
])
queryset.delete()
for user in users:
# TODO: move to model/signal
TaskResult.objects.create_task_result(
set_file_ssh_authorized_keys.delay(
'perform_delete_selected',
set_file_ssh_authorized_keys.s(
User.objects.get(uid=user).username,
[str(key) for key in SshPublicKey.objects.filter(
user_id=user)]
),
'set_file_ssh_authorized_keys'
)
)
perform_delete_selected.short_description = _(
'Delete selected SSH public keys')
@ -371,7 +373,7 @@ class SshPublicKeyAdmin(admin.ModelAdmin):
"""
actions = super(SshPublicKeyAdmin, self).get_actions(request)
if 'delete_selected' in actions:
if 'delete_selected' in actions: # pragma: no cover
del actions['delete_selected']
return actions