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