Revision 9c0dbb6a
Changement de la base de donnée pour PostgreSQL
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@293 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/tests/functional/test_userutils.py | ||
---|---|---|
5 | 5 |
""" |
6 | 6 |
from nose.tools import assert_true |
7 | 7 |
|
8 |
from vigiboard.model import DBSession, Groups, Permission, GroupPermissions |
|
8 |
from vigiboard.model import DBSession, Groups, Permission, GroupPermissions, Events
|
|
9 | 9 |
from vigiboard.tests import TestController |
10 | 10 |
from vigiboard.controllers.vigiboard_ctl import get_user_groups |
11 | 11 |
from vigiboard.tests import setup_db, teardown_db |
12 | 12 |
import tg |
13 | 13 |
import transaction |
14 | 14 |
|
15 |
#Create an empty database before we start our tests for this module |
|
16 |
def setup(): |
|
17 |
"""Function called by nose on module load""" |
|
18 |
setup_db() |
|
19 |
|
|
20 |
#Teardown that database |
|
21 |
def teardown(): |
|
22 |
"""Function called by nose after all tests in this module ran""" |
|
23 |
teardown_db() |
|
24 | 15 |
|
25 | 16 |
class TestUserUtils(TestController): |
26 | 17 |
"""Test de la classe User Utils""" |
18 |
|
|
19 |
def tearDown(self): |
|
20 |
DBSession.rollback() |
|
21 |
teardown_db() |
|
22 |
transaction.begin() |
|
27 | 23 |
|
28 | 24 |
def test_get_user_groups(self): |
29 | 25 |
""" |
... | ... | |
33 | 29 |
|
34 | 30 |
# On commence par peupler la base |
35 | 31 |
|
36 |
DBSession.add(Groups(name="hostmanagers")) |
|
37 |
DBSession.add(Groups(name="hosteditors", parent="hostmanagers")) |
|
32 |
DBSession.add(Groups(name = "hostmanagers")) |
|
33 |
DBSession.add(Groups(name = "hosteditors", parent="hostmanagers")) |
|
34 |
DBSession.query(Permission).filter( |
|
35 |
Permission.permission_name == u'manage')[0].permission_id |
|
38 | 36 |
idmanagers = DBSession.query(Permission).filter( |
39 |
Permission.permission_name == 'manage')[0].permission_id |
|
37 |
Permission.permission_name == u'manage')[0].permission_id
|
|
40 | 38 |
ideditors = DBSession.query(Permission |
41 |
).filter(Permission.permission_name == 'edit')[0].permission_id |
|
39 |
).filter(Permission.permission_name == u'edit')[0].permission_id
|
|
42 | 40 |
DBSession.add(GroupPermissions(groupname = "hostmanagers", |
43 | 41 |
idpermission = idmanagers)) |
44 | 42 |
DBSession.add(GroupPermissions(groupname = "hosteditors", |
45 | 43 |
idpermission = ideditors)) |
46 | 44 |
|
47 | 45 |
# On commit car app.get fait un rollback ou équivalent |
48 |
|
|
49 |
transaction.commit() |
|
50 |
|
|
46 |
|
|
47 |
transaction.commit()
|
|
48 |
|
|
51 | 49 |
# On obtient les variables de sessions comme si on était loggué |
52 | 50 |
# en tant que manager |
53 | 51 |
|
54 | 52 |
environ = {'REMOTE_USER': 'manager'} |
55 | 53 |
response = self.app.get('/', extra_environ=environ) |
56 | 54 |
tg.request = response.request |
57 |
|
|
55 |
|
|
58 | 56 |
# On récupère la liste des groups auquel on appartient |
59 |
|
|
57 |
|
|
60 | 58 |
grp = get_user_groups() |
61 | 59 |
|
62 | 60 |
# On vérifi que la liste est correcte (vérifi la gestion des |
63 | 61 |
# groupes sous forme d'arbre) |
64 |
|
|
65 |
assert_true( 'hostmanagers' in grp and 'hosteditors' in grp) |
|
66 |
|
|
62 |
|
|
63 |
assert_true( 'hostmanagers' in grp and 'hosteditors' in grp , |
|
64 |
msg = "il est dans %s" % grp) |
|
65 |
|
|
67 | 66 |
# On recommence pour l'utilisateur editor |
68 |
|
|
67 |
|
|
69 | 68 |
environ = {'REMOTE_USER': 'editor'} |
70 | 69 |
response = self.app.get('/', extra_environ=environ) |
71 | 70 |
tg.request = response.request |
71 |
|
|
72 | 72 |
grp = get_user_groups() |
73 |
assert_true( not('hostmanagers' in grp) and 'hosteditors' in grp) |
|
73 |
|
|
74 |
assert_true( not('hostmanagers' in grp) and 'hosteditors' in grp, |
|
75 |
msg = "il est dans %s" % grp) |
Also available in: Unified diff