def test_error(): '''Tests set_error() and error()''' r = RetVal() assert r.error() == OK, '''RetVal not initialized to OK state''' r.set_error(BadParameterValue) assert r.error( ) == BadParameterValue, '''RetVal not set to correct error state'''
def preregister(conn: ServerConnection, wid: str, uid: str, domain: str) -> RetVal: '''Provisions a preregistered account on the server.''' request = { 'Action':'PREREG', 'Data':{} } if wid: request['Data']['Workspace-ID'] = wid if uid: request['Data']['User-ID'] = uid if domain: request['Data']['Domain'] = domain status = conn.send_message(request) if status.error(): return status response = conn.read_response(server_response) if response.error(): return response if response['Code'] != 200: return wrap_server_error(response) out = RetVal() # Validate response fields fields = { 'Domain':'domain', 'Workspace-ID':'wid', 'Reg-Code':'regcode' } for k,v in fields.items(): if k in response['Data']: if isinstance(response['Data'][k], str): out[v] = response['Data'][k] else: out.set_error(ServerError, 'server returned incorrect data') else: out.set_error(ServerError, 'server did not return all required fields') if 'User-ID' in response['Data']: if isinstance(response['Data']['User-ID'], str): out['uid'] = response['Data']['User-ID'] else: out.set_error(ServerError, 'server returned incorrect data') return out