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