# coding: utf-8
import requests
from deptest import depend_on
sessionid = '12345'
login_form = {
'username': 'foo',
'password': 'bar'
}
def test_login():
# session will keep cookie in request context
s = requests.Session()
resp = s.post('http://example.com/login', data=login_form)
print resp.status_code, resp.content, resp.headers
assert resp.status_code == 200
assert 'Set-Cookie' in resp.headers
assert 'sessionid=' in resp.headers['Set-Cookie']
return s
@depend_on('test_login', with_return=True)
def test_get_menu(s):
resp = s.get('http://example.com/menu')
data = resp.json()
print resp.status_code, resp.content, resp.headers
assert resp.status_code == 200
assert len(data) >= 1
# get the first item of menu, return a tuple
return s, data[0] # equal to (s, data[0])
@depend_on('test_get_menu', with_return=True)
def test_post_order(args):
# args is a tuple
s, item = args
resp = s.post('http://example.com/menu/order', data={
'item_id': item['id']
})
data = resp.json()
print resp.status_code, resp.content, resp.headers
assert resp.status_code == 200
assert item['name'] == data['name']
# execute sequence: test_login, test_get_menu, test_post_order