Exemplo n.º 1
0
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'''
Exemplo n.º 2
0
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