utils.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # -*- coding: utf-8 -*-
  2. """
  3. walle-web
  4. :copyright: © 2015-2017 walle-web.io
  5. :created time: 2017-05-20 22:25:27
  6. :author: wushuiyong@walle-web.io
  7. """
  8. import json
  9. def response_success(response):
  10. assert 200 <= response.status_code < 300, 'Received %d response: %s' % (response.status_code, response.data)
  11. resp = resp_json(response)
  12. assert resp['code'] == 0, 'Received %d response: %s' % (resp['code'], response.data)
  13. def response_error(response, code=None):
  14. assert 200 <= response.status_code < 300, 'Received %d response: %s' % (response.status_code, response.data)
  15. resp = resp_json(response)
  16. assert resp['code'] != 0, 'Received %d response: %s' % (resp['code'], response.data)
  17. def compare_req_resp(req_obj, resp):
  18. resp_obj = resp_json(resp)['data']
  19. compare_in(req_obj, resp_obj)
  20. def compare_in(req_obj, resp_obj):
  21. for k, v in req_obj.items():
  22. assert k in resp_obj.keys(), 'Key %r not in response (keys are %r)' % (k, resp_obj.keys())
  23. assert resp_obj[k] == v, 'Value for key %r should be %r but is %r' % (k, v, resp_obj[k])
  24. def resp_json(resp):
  25. return json.loads(resp.get_data(as_text=True))