Exemplo n.º 1
0
def test_implicit_post():
    request = Request('API endpoint', url='http://example.com',
                      data={'arg1': True, 'arg2': 42})
    serialized = request.serialize()
    assert serialized['method'] == 'POST'
    assert serialized['dataMode'] == 'urlencoded'
    assert len(serialized['data']) == 2
Exemplo n.º 2
0
def test_simple_request():
    request = Request('Simple Request', 'http://example.com')
    serialized = request.serialize()
    assert serialized['name'] == 'Simple Request'
    assert serialized['url'] == 'http://example.com'
    assert serialized['method'] == 'GET'
    assert serialized['headers'] == ''
    assert serialized.get('id')
    assert len(serialized) == 5
Exemplo n.º 3
0
def test_json_data():
    request = Request('JSON POST request', url='http://example.com',
                      json={'bool': True, 'string': 'nice', 'number': 42})
    serialized = request.serialize()
    assert serialized['method'] == 'POST'
    assert serialized['url'] == 'http://example.com'
    assert serialized['dataMode'] == 'raw'
    headers = serialized['headers'].split('\n')
    assert 'Content-Type: application/json' in headers
    serialized_body = json.loads(serialized['rawModeData'])
    assert serialized_body['bool'] == True
    assert serialized_body['string'] == 'nice'
    assert serialized_body['number'] == 42
Exemplo n.º 4
0
def create_postman_collection(postman_yaml,
                              name=None,
                              data_format=None,
                              base_url=None):
    name = name or postman_yaml.get('name')
    data_format = data_format or postman_yaml.get('data-format')
    base_url = base_url or postman_yaml.get('base-url')

    folders = postman_yaml.get('folders')

    collection = Collection(name)

    for group in folders:
        folder = Folder(group.get('name', 'Unnamed'))
        collection.add_folder(folder)

        config = group['config']
        base_url = base_url or config['base-url']

        for test in group['tests']:
            name = test['name']
            description = test.get('description')
            url = base_url + test['url']
            method = test['method']
            urlvars = test.get('url-vars', {})
            # Workaround: Postman have a bug with url-vars
            for key, value in urlvars.items():
                url = url.replace(':' + key, str(value))
            # Assuming only GET method have url parameters (ex: ?a=b&c=b)
            params = test.get('params') if method == 'GET' else None
            data = test.get('params') if method != 'GET' else None
            json = None
            if data_format == 'json' and data:
                json, data = data, None
            #headers = {'Authorization': '{{Authorization}}'}
            headers = {}
            request = Request(name=name,
                              description=description,
                              url=url,
                              method=method,
                              headers=headers,
                              params=params,
                              data=data,
                              json=json)
            folder.add_request(request)

    return collection
Exemplo n.º 5
0
def test_form_data():
    request = Request('Form POST request', url='http://example.com',
                      data={'bool': True, 'string': 'nice', 'number': 42})
    serialized = request.serialize()
Exemplo n.º 6
0
def test_query_params_to_url():
    request = Request('Query params', url='http://example.com',
                      params=[('valid', 'true'), ('q', 'search string')])
    serialized = request.serialize()
    assert serialized['method'] == 'GET'
    assert serialized['url'] == 'http://example.com?valid=true&q=search+string'