diff --git a/scripts/decode-syseeprom b/scripts/decode-syseeprom index eeb38306b0..3d0b8d1db9 100755 --- a/scripts/decode-syseeprom +++ b/scripts/decode-syseeprom @@ -228,8 +228,6 @@ def main(): (opts, args) = get_cmdline_opts() - use_db = opts.db and support_eeprom_db - # Get platform name platform = device_info.get_platform() @@ -238,6 +236,8 @@ def main(): if any(re.match(p, platform) for p in platforms_without_eeprom_db): support_eeprom_db = False + use_db = opts.db and support_eeprom_db + if opts.mgmtmac: print_mgmt_mac(use_db) elif opts.serial: diff --git a/tests/decode_syseeprom_test.py b/tests/decode_syseeprom_test.py index ae3801d369..50c7667453 100644 --- a/tests/decode_syseeprom_test.py +++ b/tests/decode_syseeprom_test.py @@ -192,3 +192,12 @@ def test_print_model(self, capsys): decode_syseeprom.print_model(True) captured = capsys.readouterr() assert captured.out == 'S6100-ON\n' + + @mock.patch('os.geteuid', lambda: 0) + @mock.patch('sonic_py_common.device_info.get_platform', lambda: 'arista') + @mock.patch('decode-syseeprom.read_and_print_eeprom') + @mock.patch('decode-syseeprom.read_eeprom_from_db') + def test_support_platforms_not_db_based(self, mockDbBased, mockNotDbBased): + decode_syseeprom.main() + assert mockNotDbBased.called + assert not mockDbBased.called