changeset 4761:9b3063e16d9a

added tests for when users are deleted but still own repo objects. (Issue #64)
author Joseph Rivera <rivera.d.joseph@gmail.com>
date Mon, 22 Dec 2014 16:38:44 -0500
parents 716194520cc0
children 971d9ecdcc70
files kallithea/tests/functional/test_admin_users.py
diffstat 1 files changed, 48 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/tests/functional/test_admin_users.py	Tue Jan 06 00:54:36 2015 +0100
+++ b/kallithea/tests/functional/test_admin_users.py	Mon Dec 22 16:38:44 2014 -0500
@@ -167,6 +167,54 @@
 
         self.checkSessionFlash(response, 'Successfully deleted user')
 
+    def test_delete_repo_err(self):
+        self.log_user()
+        username = 'repoerr'
+        reponame = 'repoerr_fail'
+
+        fixture.create_user(name=username)
+        fixture.create_repo(name=reponame, cur_user=username)
+
+        new_user = Session().query(User)\
+            .filter(User.username == username).one()
+        response = self.app.delete(url('user', id=new_user.user_id))
+        self.checkSessionFlash(response, 'User "%s" still '
+                               'owns 1 repositories and cannot be removed. '
+                               'Switch owners or remove those repositories: '
+                               '%s' % (username, reponame))
+
+        response = self.app.delete(url('repo', repo_name=reponame))
+        self.checkSessionFlash(response, 'Deleted repository %s' % reponame)
+
+        response = self.app.delete(url('user', id=new_user.user_id))
+        self.checkSessionFlash(response, 'Successfully deleted user')
+
+    def test_delete_repo_group_err(self):
+        self.log_user()
+        username = 'repogrouperr'
+        groupname = 'repogroup_fail'
+
+        fixture.create_user(name=username)
+        fixture.create_repo_group(name=groupname, cur_user=username)
+
+        new_user = Session().query(User)\
+            .filter(User.username == username).one()
+        response = self.app.delete(url('user', id=new_user.user_id))
+        self.checkSessionFlash(response, 'User "%s" still '
+                               'owns 1 repository groups and cannot be removed. '
+                               'Switch owners or remove those repository groups: '
+                               '%s' % (username, groupname))
+
+        # Relevant _if_ the user deletion succeeded to make sure we can render groups without owner
+        # rg = RepoGroup.get_by_group_name(group_name=groupname)
+        # response = self.app.get(url('repos_groups', id=rg.group_id))
+
+        response = self.app.delete(url('delete_repo_group', group_name=groupname))
+        self.checkSessionFlash(response, 'Removed repository group %s' % groupname)
+
+        response = self.app.delete(url('user', id=new_user.user_id))
+        self.checkSessionFlash(response, 'Successfully deleted user')
+
     def test_show(self):
         response = self.app.get(url('user', id=1))