[IMP] test_lint: add a test to detect git conflict markers
Since the deployement of the forward-port bot, chances to merge code with conflict markers has greatly increased. With this commit, a new test is added to grep for those markers in most common code files. closes odoo/odoo#40029 X-original-commit: 19bf61c0e0c0464058064565be1051e5f43516ab Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
This commit is contained in:
committed by
fw-bot
parent
99a034774b
commit
4fdb07f81b
@@ -1,2 +1,3 @@
|
||||
from . import test_pylint
|
||||
from . import test_ecmascript
|
||||
from . import test_markers
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
import logging
|
||||
import os
|
||||
import odoo
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
MARKERS = [b'<' * 7, b'>' * 7]
|
||||
EXTENSIONS = ('.py', '.js', '.xml', '.less', '.sass')
|
||||
|
||||
|
||||
class TestConflictMarkers(TransactionCase):
|
||||
|
||||
def check_file(self, fullpath_name):
|
||||
|
||||
with open(fullpath_name, 'rb') as f:
|
||||
content = f.read()
|
||||
self.assertFalse(any([m in content for m in MARKERS]), 'Conflict markers found in %s' % fullpath_name)
|
||||
|
||||
def test_conflict_markers(self):
|
||||
""" Test that there are no conflict markers left in Odoo files """
|
||||
|
||||
counter = 0
|
||||
|
||||
odoo_path = os.path.dirname(odoo.__file__)
|
||||
paths = odoo.addons.__path__ + [odoo_path]
|
||||
paths.remove(os.path.join(odoo_path, 'addons')) # avoid checking odoo/addons twice
|
||||
|
||||
for p in paths:
|
||||
for dp, _, file_names in os.walk(p):
|
||||
for fn in file_names:
|
||||
if fn.endswith(EXTENSIONS):
|
||||
self.check_file(os.path.join(dp, fn))
|
||||
counter += 1
|
||||
_logger.info('%s files tested', counter)
|
||||
Reference in New Issue
Block a user