[tox] Use generating environments
Drop the "env" option, which is unknown, and set a generative_ "envlist". Then
use conditional dependencies based on factors_ to avoid repeating environment
sections. The only singular one is the "cubicweb" environment because of its
"commands".
At some point, it'd be nice to find a way to have python version prefixes
(py27-hooks or py34-web) for environment names but I could not find a way to extract
the package name from such names.
.. _generative: http://tox.readthedocs.org/en/latest/config.html#generative-envlist
.. _factors: http://tox.readthedocs.org/en/latest/config.html#factors-and-factor-conditional-settings
from six.moves import http_client
from logilab.common.testlib import Tags
from cubicweb.devtools.webtest import CubicWebTestTC
class CWTTC(CubicWebTestTC):
def test_response(self):
response = self.webapp.get('/')
self.assertEqual(200, response.status_int)
def test_base_url(self):
if self.config['base-url'] not in self.webapp.get('/').text:
self.fail('no mention of base url in retrieved page')
class CWTIdentTC(CubicWebTestTC):
test_db_id = 'webtest-ident'
anonymous_allowed = False
tags = CubicWebTestTC.tags | Tags(('auth',))
def test_reponse_denied(self):
res = self.webapp.get('/', expect_errors=True)
self.assertEqual(http_client.FORBIDDEN, res.status_int)
def test_login(self):
res = self.webapp.get('/', expect_errors=True)
self.assertEqual(http_client.FORBIDDEN, res.status_int)
self.login(self.admlogin, self.admpassword)
res = self.webapp.get('/')
self.assertEqual(http_client.OK, res.status_int)
self.logout()
res = self.webapp.get('/', expect_errors=True)
self.assertEqual(http_client.FORBIDDEN, res.status_int)
if __name__ == '__main__':
from logilab.common.testlib import unittest_main
unittest_main()