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
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
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
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
def test_form_data(): request = Request('Form POST request', url='http://example.com', data={'bool': True, 'string': 'nice', 'number': 42}) serialized = request.serialize()
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'