diff --git a/product/ERP5/tests/testXHTML.py b/product/ERP5/tests/testXHTML.py index 9bb6d798aa396b3c60725989a6ea3c4bead5bf33..3abc86cbef0a992c777610f251a5ca10ac079ef3 100644 --- a/product/ERP5/tests/testXHTML.py +++ b/product/ERP5/tests/testXHTML.py @@ -49,8 +49,11 @@ class TestXHTMLMixin(ERP5TypeTestCase): # some forms have intentionally empty listbox selections like RSS generators FORM_LISTBOX_EMPTY_SELECTION_PATH_LIST = ['erp5_web_widget_library/WebSection_viewContentListAsRSS'] - IGNORE_FILE_LIST = ['require.js','require.min.js','wz_dragdrop.js', - 'renderjs.js','jio.js','rsvp.js','handlebars.js'] + JSL_IGNORE_FILE_LIST = ('require.js','require.min.js','wz_dragdrop.js', + 'renderjs.js','jio.js','rsvp.js','handlebars.js') + JSL_IGNORE_SKIN_LIST = ('erp5_ace_editor', 'erp5_code_mirror', + 'erp5_fckeditor', 'erp5_jquery', 'erp5_jquery_ui', + 'erp5_svg_editor', 'erp5_xinha_editor') def changeSkin(self, skin_name): """ @@ -165,34 +168,25 @@ class TestXHTMLMixin(ERP5TypeTestCase): def test_javascript_lint(self): skins_tool = self.portal.portal_skins path_list = [] - for script_path, script in skins_tool.ZopeFind( - skins_tool, obj_metatypes=['File','DTML Method','DTML Document'], search_sub=1): - is_required_check_path = True - ignore_bts = ['erp5_jquery','erp5_fckeditor','erp5_xinha_editor', 'erp5_svg_editor', - 'erp5_jquery_ui', 'erp5_ace_editor', 'erp5_code_mirror'] + for script_path, script in skins_tool.ZopeFind(skins_tool, + obj_metatypes=('File','DTML Method','DTML Document'), search_sub=1): if script_path.endswith('.js'): - for ignore_bt_name in ignore_bts: - if script_path.startswith(ignore_bt_name): - is_required_check_path = False - for ignore_file in self.IGNORE_FILE_LIST: - if script_path.endswith(ignore_file): - is_required_check_path = False - if is_required_check_path: + x = script_path.split('/', 1) + if not (x[0] in self.JSL_IGNORE_SKIN_LIST or + x[1] in self.JSL_IGNORE_FILE_LIST): path_list.append(script_path) - def jsl(check_path): + portal_skins_path = self.portal.getId() + '/portal_skins/' + args = ('jsl', '-stdin', '-nologo', '-nosummary', '-conf', + os.path.join(os.path.dirname(__file__), 'jsl.conf')) + for path in path_list: + check_path = portal_skins_path + path body = self.publish(check_path).getBody() - conf_file = os.path.join(os.path.dirname(__file__), 'jsl.conf') try: - stdout, stderr = Popen(['jsl', '-stdin', '-nologo', '-nosummary', '-conf', conf_file], - stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True).communicate(body) + stdout, stderr = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE, + close_fds=True).communicate(body) except OSError, e: raise OSError, '%r\n%r' % (os.environ, e) self.assertEqual(stdout, '', 'jsl result of %s : %s' % (check_path, stdout)) - portal_skins_path = '%s/portal_skins' % self.portal.getId() - for path in path_list: - check_path = '%s/%s' % (portal_skins_path, path) - jsl(check_path) - def test_html_file(self): path_list = os.environ.get('CGI_PATH',