Commit 4df3bf5a authored by Jérome Perrin's avatar Jérome Perrin

core_test/testERP5Type: target Zope 4 when running ZPublisher tests 👷

TODO: I don't remember exactly but I think there was two failing
tests. Note that this test is in portal_components but running it
break the site so it's required to restart zope between each test
run.
parent 93478027
......@@ -3258,6 +3258,13 @@ class TestAccessControl(ERP5TypeTestCase):
def test(self):
self.portal.person_module.newContent(immediate_reindex=True)
def add_tests(suite, module):
if hasattr(module, 'test_suite'):
return suite.addTest(module.test_suite())
for obj in vars(module).values():
if isinstance(obj, type) and issubclass(obj, unittest.TestCase):
suite.addTest(unittest.makeSuite(obj))
def test_suite():
suite = unittest.TestSuite()
......@@ -3266,91 +3273,56 @@ def test_suite():
# run tests for monkey patched ZPublisher modules
import ZPublisher.tests.testBaseRequest
suite.addTest(ZPublisher.tests.testBaseRequest.test_suite())
add_tests(suite, ZPublisher.tests.testBaseRequest)
import ZPublisher.tests.testBeforeTraverse
suite.addTest(ZPublisher.tests.testBeforeTraverse.test_suite())
add_tests(suite, ZPublisher.tests.testBeforeTraverse)
import ZPublisher.tests.testHTTPRangeSupport
suite.addTest(ZPublisher.tests.testHTTPRangeSupport.test_suite())
add_tests(suite, ZPublisher.tests.testHTTPRangeSupport)
import ZPublisher.tests.testHTTPRequest
# ERP5 processes requests as utf-8 by default, but we adjust this test assuming that
# default is iso-8859-15
def forceISO885915DefaultRequestCharset(method):
def wrapped(self):
from ZPublisher import HTTPRequest as module
old_encoding = module.default_encoding
module.default_encoding = 'iso-8859-15'
try:
return method(self)
finally:
module.default_encoding = old_encoding
return wrapped
ZPublisher.tests.testHTTPRequest.HTTPRequestTests.test_processInputs_w_unicode_conversions = forceISO885915DefaultRequestCharset(
ZPublisher.tests.testHTTPRequest.HTTPRequestTests.test_processInputs_w_unicode_conversions)
suite.addTest(ZPublisher.tests.testHTTPRequest.test_suite())
add_tests(suite, ZPublisher.tests.testHTTPRequest)
import ZPublisher.tests.testHTTPResponse
# ERP5 forces utf-8 responses by default, but we adjust these tests so that they run
# with iso-8859-15 as default response charset
def forceISO885915DefaultResponseCharset(method):
def wrapped(self):
# here we can use this utility method which clean up at teardown
self._setDefaultEncoding('iso-8859-15')
return method(self)
return wrapped
HTTPResponseTests = ZPublisher.tests.testHTTPResponse.HTTPResponseTests
HTTPResponseTests.test___str__w_body = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test___str__w_body)
HTTPResponseTests.test_ctor_charset_no_content_type_header = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_ctor_charset_no_content_type_header)
HTTPResponseTests.test_ctor_charset_text_header_no_charset_defaults_latin1 = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_ctor_charset_text_header_no_charset_defaults_latin1)
HTTPResponseTests.test_ctor_charset_unicode_body_application_header = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_ctor_charset_unicode_body_application_header)
HTTPResponseTests.test_listHeaders_w_body = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_listHeaders_w_body)
HTTPResponseTests.test_setBody_2_tuple_w_is_error_converted_to_Site_Error = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_setBody_2_tuple_w_is_error_converted_to_Site_Error)
HTTPResponseTests.test_setBody_2_tuple_wo_is_error_converted_to_HTML = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_setBody_2_tuple_wo_is_error_converted_to_HTML)
HTTPResponseTests.test_setBody_object_with_asHTML = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_setBody_object_with_asHTML)
HTTPResponseTests.test_setBody_object_with_unicode = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_setBody_object_with_unicode)
HTTPResponseTests.test_setBody_string_HTML = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_setBody_string_HTML)
HTTPResponseTests.test_setBody_string_not_HTML = forceISO885915DefaultResponseCharset(
HTTPResponseTests.test_setBody_string_not_HTML)
suite.addTest(ZPublisher.tests.testHTTPResponse.test_suite())
# TODO: why is this failing ? it seems testHTTPResponse is loaded as latin1, even though it
# uses coding: utf-8.
testHTTPResponse_encode_words = ZPublisher.tests.testHTTPResponse.encode_words
ZPublisher.tests.testHTTPResponse.encode_words = unittest.expectedFailure(testHTTPResponse_encode_words)
add_tests(suite, ZPublisher.tests.testHTTPResponse)
import ZPublisher.tests.testIterators
suite.addTest(ZPublisher.tests.testIterators.test_suite())
add_tests(suite, ZPublisher.tests.testIterators)
import ZPublisher.tests.testPostTraversal
suite.addTest(ZPublisher.tests.testPostTraversal.test_suite())
import ZPublisher.tests.testPublish
suite.addTest(ZPublisher.tests.testPublish.test_suite())
add_tests(suite, ZPublisher.tests.testPostTraversal)
import ZPublisher.tests.test_Converters
suite.addTest(ZPublisher.tests.test_Converters.test_suite())
add_tests(suite, ZPublisher.tests.test_Converters)
# XXX don't run test_WSGIPublisher for now because too many failures
# import ZPublisher.tests.test_WSGIPublisher
# suite.addTest(ZPublisher.tests.test_WSGIPublisher.test_suite())
# XXX don't run test_exception_handling because we have incompatible zope.testbrowser version
# import ZPublisher.tests.test_exception_handling
import ZPublisher.tests.test_mapply
suite.addTest(ZPublisher.tests.test_mapply.test_suite())
add_tests(suite, ZPublisher.tests.test_mapply)
import ZPublisher.tests.test_xmlrpc
suite.addTest(ZPublisher.tests.test_xmlrpc.test_suite())
import ZPublisher.tests.test_pubevents
TestGlobalRequestPubEventsAndExceptionUpgrading_afterSetUp = ZPublisher.tests.test_pubevents.TestGlobalRequestPubEventsAndExceptionUpgrading.afterSetUp
def afterSetUp(self):
TestGlobalRequestPubEventsAndExceptionUpgrading_afterSetUp(self)
# restore default server name, because some tests from test_pubevents have assertions
# assuming that it will be `nohost`
self.app.REQUEST['SERVER_NAME'] = 'nohost'
self.app.REQUEST['SERVER_PORT'] = 80
ZPublisher.tests.test_pubevents.TestGlobalRequestPubEventsAndExceptionUpgrading.afterSetUp = afterSetUp
add_tests(suite, ZPublisher.tests.test_pubevents)
import ZPublisher.tests.testpubevents
suite.addTest(ZPublisher.tests.testpubevents.test_suite())
import ZPublisher.tests.test_utils
add_tests(suite, ZPublisher.tests.test_utils)
import ZPublisher.tests.test_xmlrpc
add_tests(suite, ZPublisher.tests.test_xmlrpc)
return suite
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment