[test] Fix unittest_i18n to run properly with "pytest -t" (closes #5576169)
When running "pytest -t", many tests modules will be imported and run
within a single python process. unittest_i18n fails when run after tests
such as unittest_webtest.py or unittest_httptest.py.
The main reason is that unittest_i18n does various tricks to add a test
cube to the search path, which badly fails when a previous test module
has already loaded "stuff" (for lack of a better word).
Instead, let's just call the 'i18ncube' command with subprocess.
The change from logilab.common.testlib to unittest is not directly
needed, but comes as a free cleanup with the above changes.
# copyright %(year)s %(author)s, all rights reserved.
# contact %(author-web-site)s -- mailto:%(author-email)s
#
%(long-license)s
"""%(distname)s automatic tests
uncomment code below if you want to activate automatic test for your cube:
.. sourcecode:: python
from cubicweb.devtools.testlib import AutomaticWebTest
class AutomaticWebTest(AutomaticWebTest):
'''provides `to_test_etypes` and/or `list_startup_views` implementation
to limit test scope
'''
def to_test_etypes(self):
'''only test views for entities of the returned types'''
return set(('My', 'Cube', 'Entity', 'Types'))
def list_startup_views(self):
'''only test startup views of the returned identifiers'''
return ('some', 'startup', 'views')
"""
from cubicweb.devtools import testlib
class DefaultTC(testlib.CubicWebTC):
def test_something(self):
self.skipTest('this cube has no test')
if __name__ == '__main__':
from logilab.common.testlib import unittest_main
unittest_main()