vigiboard / vigiboard / tests / functional / test_userutils.py @ 20367931
History | View | Annotate | Download (2.35 KB)
1 |
# -*- coding: utf-8 -*-
|
---|---|
2 |
# vim:set expandtab tabstop=4 shiftwidth=4:
|
3 |
"""
|
4 |
Test de la classe User Utils
|
5 |
"""
|
6 |
from nose.tools import assert_true |
7 |
|
8 |
from vigiboard.model import * |
9 |
from vigiboard.tests import TestController |
10 |
from vigiboard.controllers.vigiboard_ctl import GetUserGroups |
11 |
from vigiboard.tests import setup_db, teardown_db |
12 |
import tg |
13 |
import transaction |
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 |
f = open('/home/tandreja/moimoi','a') |
25 |
try:
|
26 |
f.write("%d\n" % DBSession.query(Group).count())
|
27 |
except:
|
28 |
pass
|
29 |
f.close() |
30 |
|
31 |
class TestUserUtils(TestController): |
32 |
|
33 |
def test_get_user_groups(self): |
34 |
"""Manager est dans le group hostmanagers et hosteditors et Editor seulement dans hosteditors"""
|
35 |
#On commence par peupler la base
|
36 |
DBSession.add(Groups(name="hostmanagers"))
|
37 |
DBSession.add(Groups(name="hosteditors",parent="hostmanagers")) |
38 |
idmanagers = DBSession.query(Permission).filter(Permission.permission_name=='manage')[0].permission_id |
39 |
ideditors = DBSession.query(Permission).filter(Permission.permission_name=='edit')[0].permission_id |
40 |
DBSession.add(GroupPermissions(groupname="hostmanagers",idpermission=idmanagers))
|
41 |
DBSession.add(GroupPermissions(groupname="hosteditors",idpermission=ideditors))
|
42 |
|
43 |
# On commit car app.get fait un rollback ou équivalent
|
44 |
transaction.commit() |
45 |
|
46 |
# On obtient les variables de sessions comme si on était loggué en tant que manager
|
47 |
environ = {'REMOTE_USER': 'manager'} |
48 |
response = self.app.get('/', extra_environ=environ) |
49 |
tg.request = response.request |
50 |
|
51 |
#On récupère la liste des groups auquel on appartient
|
52 |
grp = GetUserGroups() |
53 |
|
54 |
#On vérifi que la liste est correcte (vérifi la gestion des groupes sous forme d'arbre)
|
55 |
assert_true( 'hostmanagers' in grp and 'hosteditors' in grp) |
56 |
|
57 |
#On recommence pour l'utilisateur editor
|
58 |
environ = {'REMOTE_USER': 'editor'} |
59 |
response = self.app.get('/', extra_environ=environ) |
60 |
tg.request = response.request |
61 |
grp = GetUserGroups() |
62 |
assert_true( not('hostmanagers' in grp) and 'hosteditors' in grp) |