[202012] [sonic-config-engine] Generate expected output with different cable len (#11082)

* Generate expected output with 300m cable len and compare against it

Signed-off-by: Neetha John <nejo@microsoft.com>

* Rewrite assert logic

Signed-off-by: Neetha John <nejo@microsoft.com>
This commit is contained in:
Neetha John 2022-06-10 03:06:44 -07:00 committed by GitHub
parent 68f4e0b738
commit 5ceb25e21b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -69,6 +69,20 @@ class TestJ2Files(TestCase):
if not dir_exist:
os.system('sudo rmdir /host')
def modify_cable_len(self, base_file, file_dir):
input_file = os.path.join(file_dir, base_file)
with open(input_file, 'r') as ifd:
object = json.load(ifd)
if 'CABLE_LENGTH' in object and 'AZURE' in object['CABLE_LENGTH']:
for key in object['CABLE_LENGTH']['AZURE']:
object['CABLE_LENGTH']['AZURE'][key] = '300m'
prefix, extension = base_file.split('.')
output_file = '{}_300m.{}'.format(prefix, extension)
out_file_path = os.path.join(file_dir, output_file)
with open(out_file_path, 'w') as wfd:
json.dump(object, wfd, indent=4)
return output_file
def test_interfaces(self):
interfaces_template = os.path.join(self.test_dir, '..', '..', '..', 'files', 'image_config', 'interfaces', 'interfaces.j2')
argument = '-m ' + self.t0_minigraph + ' -a \'{\"hwaddr\":\"e4:1d:2d:a5:f3:ad\"}\' -t ' + interfaces_template + ' > ' + self.output_file
@ -355,8 +369,21 @@ class TestJ2Files(TestCase):
os.remove(buffers_config_file_new)
self.remove_machine_conf(file_exist, dir_exist)
sample_output_file = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, expected)
assert utils.cmp(sample_output_file, self.output_file), self.run_diff(sample_output_file, self.output_file)
out_file_dir = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR)
expected_files = [expected, self.modify_cable_len(expected, out_file_dir)]
match = False
diff = ''
for out_file in expected_files:
sample_output_file = os.path.join(out_file_dir, out_file)
if utils.cmp(sample_output_file, self.output_file):
match = True
break
else:
diff = diff + str(self.run_diff(sample_output_file, self.output_file))
os.remove(os.path.join(out_file_dir, expected_files[1]))
assert match, diff
def test_extra_lossless_buffer_for_tunnel_remapping(self):
if utils.PYvX_DIR != 'py3':