示例#1
0
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()
示例#2
0
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
示例#3
0
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()
示例#4
0
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()
示例#5
0
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()
示例#6
0
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()
示例#7
0
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()
示例#8
0
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))