+ # Add account
+ person_fields = random_person()
+ AddPerson = self.debug(shell.AddPerson)
+ person_id = AddPerson(person_fields)
+ if person_id is None: continue
+
+ # Should return a unique person_id
+ self.isunique(person_id, person_ids, 'AddPerson - isunique')
+ person_ids.append(person_id)
+ GetPersons = self.debug(shell.GetPersons)
+ persons = GetPersons([person_id])
+ if persons is None: continue
+ person = persons[0]
+ self.isequal(person, person_fields, 'AddPerson - isequal')
+
+ # Update account
+ person_fields = random_person()
+ person_fields['enabled'] = True
+ UpdatePerson = self.debug(shell.UpdatePerson)
+ result = UpdatePerson(person_id, person_fields)
+
+ # Add random role
+ AddRoleToPerson = self.debug(shell.AddRoleToPerson)
+ role = random.sample(roles, 1)[0]
+ result = AddRoleToPerson(role, person_id)
+
+ # Add key to person
+ key = random_key()
+ key_id = AddPersonKey = self.debug(shell.AddPersonKey)
+ AddPersonKey(person_id, key)
+
+ # Add person to site
+ site_id = random.sample(self.site_ids, 1)[0]
+ AddPersonToSite = self.debug(shell.AddPersonToSite)
+ AddPersonToSite(person_id, site_id)
+
+ # Add person to slice
+ slice_id = random.sample(self.slice_ids, 1)[0]
+ AddPersonToSlice = self.debug(self.AddPersonToSlice)
+ AddPersonToSlice(person_id, slice_id)
+
+ # check role, key, site, slice
+ persons = GetPersons([person_id], ['roles', 'key_ids', 'site_ids', 'slice_ids'])
+ if persons is None or not persons: continue
+ person = persons[0]
+ self.islistequal([role], person['roles'], 'AddRoleToPerson - check')
+ self.islistequal([key_id], person['key_ids'], 'AddPersonKey - check')
+ self.islistequal([site_id], person['site_ids'], 'AddPersonToSite - check')
+ self.islistequal([slice_id], person['slice_ids'], 'AddPersonToSlice - check')
+
+ persons = GetPersons(person_ids)
+ if persons is not None:
+ self.islistequal(person_ids, [p['person_id'] for p in persons], 'GetPersons - isequal')