| # -*- coding: utf-8 -*- |
| from doctest import NORMALIZE_WHITESPACE |
| from doctest import ELLIPSIS |
| from doctest import SKIP |
| from webtest import TestApp |
| from webob import Request |
| from webob import Response |
| import json |
| import six |
| import sys |
| |
| |
| def application(environ, start_response): |
| req = Request(environ) |
| if req.path_info.endswith('.html'): |
| content_type = 'text/html' |
| body = six.b('<html><body><div id="content">hey!</div></body>') |
| elif req.path_info.endswith('.xml'): |
| content_type = 'text/xml' |
| body = six.b('<xml><message>hey!</message></xml>') |
| elif req.path_info.endswith('.json'): |
| content_type = 'application/json' |
| body = json.dumps({"a": 1, "b": 2}) |
| resp = Response(body, content_type=content_type) |
| return resp(environ, start_response) |
| |
| |
| def setup_test(test): |
| ver = sys.version_info[:2] |
| is_pypy = 'PyPy' in sys.version |
| test.globs.update(app=TestApp(application)) |
| for example in test.examples: |
| if "lxml" in example.source and is_pypy: |
| # minidom node do not render the same in 2.6 |
| example.options[SKIP] = 1 |
| elif "pyquery" in example.source and is_pypy: |
| # minidom node do not render the same in 2.6 |
| example.options[SKIP] = 1 |
| elif "'xml'" in example.want and ver == (2, 6): |
| # minidom node do not render the same in 2.6 |
| example.options[SKIP] = 1 |
| else: |
| example.options[ELLIPSIS] = 1 |
| example.options[NORMALIZE_WHITESPACE] = 1 |
| |
| setup_test.__test__ = False |