Added missing changes to context.py

This commit is contained in:
Salvador E. Tropea 2022-06-10 20:37:17 -03:00
parent 3a5042ea96
commit 78b55b916a
1 changed files with 32 additions and 4 deletions

View File

@ -98,7 +98,8 @@ def cover_it(cov):
class TestContext(object): class TestContext(object):
def __init__(self, test_dir, board_name, yaml_name, sub_dir, yaml_compressed=False, add_cfg_kmajor=False, test_name=None): def __init__(self, test_dir, board_name, yaml_name, sub_dir='', yaml_compressed=False, add_cfg_kmajor=False,
test_name=None):
if test_name is None: if test_name is None:
test_name = sys._getframe(1).f_code.co_name test_name = sys._getframe(1).f_code.co_name
if test_name.startswith('test_'): if test_name.startswith('test_'):
@ -130,9 +131,11 @@ class TestContext(object):
self.err = None self.err = None
self.proc = None self.proc = None
def get_board_dir(self): def get_board_dir(self, file=None):
this_dir = os.path.dirname(os.path.realpath(__file__)) this_dir = os.path.dirname(os.path.realpath(__file__))
return os.path.join(this_dir, BOARDS_DIR) if file is None:
return os.path.join(this_dir, BOARDS_DIR)
return os.path.join(this_dir, BOARDS_DIR, file)
def _get_board_file(self): def _get_board_file(self):
self.board_file = os.path.abspath(os.path.join(self.get_board_dir(), self.board_name + KICAD_PCB_EXT)) self.board_file = os.path.abspath(os.path.join(self.get_board_dir(), self.board_name + KICAD_PCB_EXT))
@ -255,6 +258,9 @@ class TestContext(object):
logging.debug(filename+' OK') logging.debug(filename+' OK')
return file return file
def expect_out_file_d(self, filename):
return self.expect_out_file(os.path.join(self.sub_dir, filename))
def dont_expect_out_file(self, filename): def dont_expect_out_file(self, filename):
file = self.get_out_path(filename) file = self.get_out_path(filename)
assert not os.path.isfile(file) assert not os.path.isfile(file)
@ -426,6 +432,9 @@ class TestContext(object):
res.append(m.groups()) res.append(m.groups())
return res return res
def search_in_file_d(self, file, texts):
return self.search_in_file(os.path.join(self.sub_dir, file), texts)
def search_not_in_file(self, file, texts): def search_not_in_file(self, file, texts):
logging.debug('Searching not in "'+file+'" output') logging.debug('Searching not in "'+file+'" output')
with open(self.get_out_path(file)) as f: with open(self.get_out_path(file)) as f:
@ -437,6 +446,9 @@ class TestContext(object):
logging.debug(msg+' OK') logging.debug(msg+' OK')
# logging.debug(' '+m.group(0)) # logging.debug(' '+m.group(0))
def search_not_in_file_d(self, file, texts):
return self.search_not_in_file(os.path.join(self.sub_dir, file), texts)
def compare_image(self, image, reference=None, diff='diff.png', ref_out_dir=False, fuzz='5%', tol=0, height='87%'): def compare_image(self, image, reference=None, diff='diff.png', ref_out_dir=False, fuzz='5%', tol=0, height='87%'):
""" For images and single page PDFs """ """ For images and single page PDFs """
if reference is None: if reference is None:
@ -516,6 +528,19 @@ class TestContext(object):
res = subprocess.call(cmd) res = subprocess.call(cmd)
assert res == 0, res assert res == 0, res
def compare_txt_d(self, text, reference=None, diff='diff.txt'):
if reference is None:
reference = text
text = os.path.join(self.sub_dir, text)
diff = os.path.join(self.sub_dir, diff)
self.compare_txt(text, reference, diff)
def compare_txt_d2(self, text, reference=None, diff='diff.txt'):
if reference is None:
reference = text
reference = os.path.join(self.sub_dir, reference)
self.compare_txt_d(text, reference, diff)
def filter_txt(self, file, pattern, repl): def filter_txt(self, file, pattern, repl):
fname = self.get_out_path(file) fname = self.get_out_path(file)
with open(fname) as f: with open(fname) as f:
@ -751,6 +776,9 @@ class TestContext(object):
assert f in text, f assert f in text, f
logging.debug('- `'+f+'` OK') logging.debug('- `'+f+'` OK')
def test_compress_d(self, fname, files):
self.test_compress(fname, [os.path.join(self.sub_dir, f) for f in files])
def read_mk_targets(self, mkfile): def read_mk_targets(self, mkfile):
targets = {} targets = {}
with open(mkfile, 'rt') as f: with open(mkfile, 'rt') as f:
@ -773,7 +801,7 @@ class TestContext(object):
class TestContextSCH(TestContext): class TestContextSCH(TestContext):
def __init__(self, test_dir, board_name, yaml_name, sub_dir, test_name=None): def __init__(self, test_dir, board_name, yaml_name, sub_dir='', test_name=None):
self.mode = MODE_SCH self.mode = MODE_SCH
if test_name is None: if test_name is None:
test_name = sys._getframe(1).f_code.co_name test_name = sys._getframe(1).f_code.co_name