46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import logging
|
|
import os
|
|
import re
|
|
import subprocess
|
|
from unittest import skipIf
|
|
from odoo import tools
|
|
from odoo.modules import get_modules, get_module_path
|
|
|
|
from . import lint_case
|
|
|
|
MAX_ES_VERSION = 'es10'
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
try:
|
|
es_check = tools.misc.find_in_path('es-check')
|
|
except IOError:
|
|
es_check = None
|
|
|
|
|
|
@skipIf(es_check is None, "es-check tool not found on this system")
|
|
class TestECMAScriptVersion(lint_case.LintCase):
|
|
|
|
longMessage = True
|
|
|
|
def test_ecmascript_version(self):
|
|
""" Test that there is no unsupported ecmascript in javascript files """
|
|
|
|
files_to_check = [
|
|
p for p in self.iter_module_files('*.js')
|
|
if 'static/test' not in p
|
|
if 'static/src/tests' not in p
|
|
if 'static/lib/qweb/qweb.js' not in p # because this file is not bundled at all
|
|
if 'py.js/lib/py.js' not in p # because it is not "strict" compliant
|
|
if 'static/lib/epos-2.12.0.js' not in p # same
|
|
]
|
|
|
|
_logger.info('Testing %s js files', len(files_to_check))
|
|
cmd = [es_check, MAX_ES_VERSION] + files_to_check + ['--module']
|
|
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
out, err = process.communicate()
|
|
self.assertEqual(process.returncode, 0, msg=out.decode())
|