12728eea9659ac5ec960a741cf833daea4ad9eb0
[tests.git] / system / TestUser.py
1 # Thierry Parmentelat <thierry.parmentelat@inria.fr>
2 # Copyright (C) 2010 INRIA 
3 #
4 import os, sys, time
5 import xmlrpclib
6
7 import utils
8
9 class TestUser:
10
11     def __init__ (self,test_plc,test_site,user_spec):
12         self.test_plc=test_plc
13         self.test_site=test_site
14         self.user_spec=user_spec
15
16     def name(self):
17         return self.user_spec['user_fields']['email']
18
19     def auth (self):
20         person=self.user_spec['user_fields']
21         return {'Username':person['email'],
22                 'AuthMethod':'password',
23                 'AuthString':person['password'],
24                 'Role':self.user_spec['roles'][0],
25                 }
26
27     def create_user (self):
28         user_spec=self.user_spec
29         fields=user_spec['user_fields']
30         auth=self.test_plc.auth_root()
31         utils.header('Adding user %s - roles %r'%(fields['email'],user_spec['roles']))
32         self.test_plc.apiserver.AddPerson(auth,fields)
33         self.test_plc.apiserver.UpdatePerson(auth,fields['email'],{'enabled': True})
34         for role in user_spec['roles']:
35             self.test_plc.apiserver.AddRoleToPerson(auth,role,fields['email'])
36         self.test_plc.apiserver.AddPersonToSite(auth,
37                                              self.name(),
38                                              self.test_site.name())
39
40     def delete_user(self):
41         auth=self.test_plc.auth_root()
42         self.test_plc.apiserver.DeletePerson(auth,self.name())
43
44     def add_keys (self):
45         user_spec=self.user_spec
46         for key_name in user_spec['key_names']:
47             key_spec=self.test_plc.locate_key(key_name)
48             auth=self.auth()
49             self.test_plc.apiserver.AddPersonKey(auth,self.name(), key_spec['key_fields'])