diff rhodecode/tests/fixture.py @ 3714:7e3d89d9d3a2 beta

- Manage User’s Groups: create, delete, rename, add/remove users inside. by user group admin. In this case, a user's group can be owned by several people thru an owner user's group. Some refactoring of naming, permission handling logic. - remove some code duplicity as well as inconsistent naming
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 08 Apr 2013 22:47:35 +0200
parents 8a86836fad64
children ffd45b185016
line wrap: on
line diff
--- a/rhodecode/tests/fixture.py	Mon Apr 08 20:38:37 2013 +0200
+++ b/rhodecode/tests/fixture.py	Mon Apr 08 22:47:35 2013 +0200
@@ -2,10 +2,11 @@
 Helpers for fixture generation
 """
 from rhodecode.tests import *
-from rhodecode.model.db import Repository, User, RepoGroup
+from rhodecode.model.db import Repository, User, RepoGroup, UserGroup
 from rhodecode.model.meta import Session
 from rhodecode.model.repo import RepoModel
 from rhodecode.model.repos_group import ReposGroupModel
+from rhodecode.model.users_group import UserGroupModel
 
 
 class Fixture(object):
@@ -43,6 +44,15 @@
 
         return defs
 
+    def _get_user_group_create_params(self, name, **custom):
+        defs = dict(
+            users_group_name=name,
+            users_group_active=True,
+        )
+        defs.update(custom)
+
+        return defs
+
     def create_repo(self, name, **kwargs):
         if 'skip_if_exists' in kwargs:
             del kwargs['skip_if_exists']
@@ -100,3 +110,17 @@
         Session().commit()
         gr = RepoGroup.get_by_group_name(gr.group_name)
         return gr
+
+    def create_user_group(self, name, **kwargs):
+        if 'skip_if_exists' in kwargs:
+            del kwargs['skip_if_exists']
+            gr = UserGroup.get_by_group_name(group_name=name)
+            if gr:
+                return gr
+        form_data = self._get_user_group_create_params(name, **kwargs)
+        owner = kwargs.get('cur_user', TEST_USER_ADMIN_LOGIN)
+        user_group = UserGroupModel().create(name=form_data['users_group_name'],
+                        owner=owner, active=form_data['users_group_active'])
+        Session().commit()
+        user_group = UserGroup.get_by_group_name(user_group.users_group_name)
+        return user_group