Port test_cornice to Python 3

* Use byte strings for HTTP body
* Remove debug print()
* tox.ini: add cornice-py3 test environment

Note: It looks like it doesn't work to inherit commands from cornice
into cornice-py3 because cornice commands use the substitution string
{posargs}.

Change-Id: Iaed39babc7ee9877d443c47c2f4b21b2e98b5181
This commit is contained in:
Victor Stinner 2016-03-08 10:31:21 +01:00
parent 5376fe2f0e
commit 6560133d79
2 changed files with 16 additions and 7 deletions

View File

@ -103,14 +103,14 @@ class WSMECorniceTestCase(unittest.TestCase):
resp = self.app.get('/users')
self.assertEqual(
resp.body,
'[{"id": 1, "name": "first"}]'
b'[{"id": 1, "name": "first"}]'
)
def test_get_xml_list(self):
resp = self.app.get('/users', headers={"Accept": "text/xml"})
self.assertEqual(
resp.body,
'<result><item><id>1</id><name>first</name></item></result>'
b'<result><item><id>1</id><name>first</name></item></result>'
)
def test_post_json_data(self):
@ -121,7 +121,7 @@ class WSMECorniceTestCase(unittest.TestCase):
)
self.assertEqual(
resp.body,
'{"id": 2, "name": "new"}'
b'{"id": 2, "name": "new"}'
)
def test_post_xml_data(self):
@ -132,7 +132,7 @@ class WSMECorniceTestCase(unittest.TestCase):
)
self.assertEqual(
resp.body,
'<result><id>2</id><name>new</name></result>'
b'<result><id>2</id><name>new</name></result>'
)
def test_pass_request(self):
@ -170,7 +170,6 @@ class WSMECorniceTestCase(unittest.TestCase):
headers={'Accept': 'application/json'},
expect_errors=True
)
print resp.body
self.assertEqual(resp.json['faultcode'], 'Client')
self.assertEqual(resp.status_code, 400)
@ -180,6 +179,5 @@ class WSMECorniceTestCase(unittest.TestCase):
headers={'Accept': 'application/json'},
expect_errors=True
)
print resp.body
self.assertEqual(resp.json['faultcode'], 'Client')
self.assertEqual(resp.status_code, 401)

13
tox.ini
View File

@ -1,5 +1,5 @@
[tox]
envlist = py27,py27-nolxml,pypy,tg11,tg15,cornice,coverage,py34,py34-nolxml,pecan-dev27,pecan-dev34,pep8
envlist = py27,py27-nolxml,pypy,tg11,tg15,cornice,cornice-py3,coverage,py34,py34-nolxml,pecan-dev27,pecan-dev34,pep8
[common]
testtools =
@ -32,6 +32,17 @@ commands =
{envbindir}/nosetests tests/test_cornice.py --with-xunit --xunit-file nosetests-{envname}.xml --verbose --with-coverage --cover-package wsmeext {posargs}
{envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsmeext/cornice.py
[testenv:cornice-py3]
basepython = python3
usedevelop = {[testenv:cornice]usedevelop}
deps = {[testenv:cornice]deps}
# disable hash randomization
setenv =
PYTHONHASHSEED=0
commands =
{envbindir}/nosetests tests/test_cornice.py --with-xunit --xunit-file nosetests-{envname}.xml --verbose --with-coverage --cover-package wsmeext {posargs}
{envbindir}/coverage xml -o coverage-{envname}.xml wsme/*.py wsmeext/cornice.py
[testenv:pecan-dev-base]
deps =
{[common]testtools}