def _rename_script(user=None, project=None, new_name=None, script_id=None, **kwargs): project, user = statics.set_project_user(project=project, user=user) if user is None or project is None or new_name is None or script_id is None: raise ValueError( "script_id, user, project and name must be specified. {locals}". format(locals=str(locals()))) headers = authentication.testpad_headers( user=user, referer="{url}/project/{project}/".format(url=user.testpad_url, project=project)) data = {"data": new_name} rename_response = requests.post( "{url}/a/script/{script_id}/editname".format(url=user.testpad_url, script_id=script_id), headers=headers, json=data) assert rename_response.status_code is 200 authentication.update_cookies(response=rename_response, user=user, **kwargs) return rename_response.json()
def report_with_steps(user=None, project=None, report_folder=None, name=None, auth_token=None, **kwargs): project, user = statics.set_project_user(project=project, user=user) if user is None and auth_token is None: raise ValueError( "user or auth_token must be specified. {locals}".format( locals=str(locals()))) if project is None or report_folder is None: raise ValueError( "project and targetfolder must be specified. {locals}".format( locals=str(locals()))) # https://recordsure.ontestpad.com/project/11/folder/f277/report/S headers = authentication.testpad_headers( user=user, referer="{url}/project/{project}/".format(url=user.testpad_url, project=project)) response = requests.get( '{url}/project/{project}/folder/{folder}/report/Sb'.format( url=user.testpad_url, project=project, folder=report_folder), headers=headers) assert response.status_code is 200 return response.content
def load_scripts(user=None, project=None, targetfolder=None, **kwargs): project, user = statics.set_project_user(project=project, user=user) headers = authentication.testpad_headers( user=user, referer="{url}/project/{project}/folder/{folder}".format( url=user.testpad_url, project=project, folder=targetfolder)) load_scripts_response = requests.post( '{url}/a/project/{project}/folder/{folder}/loadScripts'.format( url=user.testpad_url, project=project, folder=targetfolder), headers=headers, json='{"data":null}') authentication.update_cookies(response=load_scripts_response, user=user, **kwargs) return load_scripts_response.json()
def _create_new_folder(user=None, project=None, parent=None, **kwargs): if parent is None: parent = 'f0' headers = authentication.testpad_headers( user=user, referer="{url}/project/{project}/folder/{folder}/".format( url=user.testpad_url, project=project, folder=parent)) new_folder_response = requests.post( '{url}/a/project/{project}/folder/{folder}/newFolder'.format( url=user.testpad_url, project=project, folder=parent), headers=headers, json='{"data":null}') assert new_folder_response.status_code is 200 authentication.update_cookies(response=new_folder_response, user=user, **kwargs) return new_folder_response.json()
def _create_new_script(user=None, project=None, folder=None, **kwargs): headers = authentication.testpad_headers( user=user, referer="{url}/project/{project}/folder/{folder}/".format( url=user.testpad_url, project=project, folder=folder)) data = '{"data":null}' new_script = requests.post( "{url}/a/project/{project}/folder/{folder}/newScript".format( url=user.testpad_url, project=project, folder=folder), headers=headers, data=data) assert new_script.status_code is 200 authentication.update_cookies(response=new_script, user=user, **kwargs) return new_script.json()
def _rename_folder(user=None, project=None, folder_id=None, name=None, **kwargs): headers = authentication.testpad_headers( user=user, referer="{url}/project/{project}/".format(url=user.testpad_url, project=project)) rename_folder_response = requests.post( '{url}/a/project/{project}/folder/{folder}/name'.format( url=user.testpad_url, project=project, folder=folder_id), headers=headers, json={"data": name}) assert rename_folder_response.status_code is 200 authentication.update_cookies(response=rename_folder_response, user=user, **kwargs) return rename_folder_response.json()
def populate_script(user=None, project=None, script_id=None, text=None, **kwargs): project, user = statics.set_project_user(project=project, user=user) if user is None or project is None or script_id is None or text is None: raise ValueError( "script_id, user and project must be specified. {locals}".format( locals=str(locals()))) headers = authentication.testpad_headers( user=user, referer=("{url}/script/{script_id}/".format(url=user.testpad_url, script_id=script_id))) data = {"data": ScriptBuilder(text=text).build()} response = requests.post("{url}/a/script/{script_id}/insertMany".format( url=user.testpad_url, script_id=script_id), headers=headers, json=data) assert response.status_code is 200 return response.json()
class Project(object): PROJECT = None @classmethod def get(cls): return cls.PROJECT @classmethod def set(cls, value): cls.PROJECT = value def set_project_user(project=None, user=None): if user is None: user = User.get() if project is None: project = Project.get() return project, user if __name__ == '__main__': import os import json from testpad import authentication target_folder = os.getenv('targetfolder') Project.set(os.getenv('project')) User.set(authentication.authenticate()) hdrs = authentication.testpad_headers(thing="stuff", otherthings="more stuff") print(json.dumps(hdrs, indent=4))