Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[test][db_migrator] Make advance_version_for_expected_database available for other db migrator test cases as well #1614

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1115,6 +1115,6 @@
"speed": "50000"
},
"VERSIONS|DATABASE": {
"VERSION": "version_2_0_1"
"VERSION": "version_2_0_0"
neethajohn marked this conversation as resolved.
Show resolved Hide resolved
}
}
29 changes: 16 additions & 13 deletions tests/db_migrator_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,17 @@ def get_sonic_version_info_mlnx():
return {'asic_type': 'mellanox'}


def advance_version_for_expected_database(migrated_db, expected_db, last_interested_version):
# In case there are new db versions greater than the latest one that mellanox buffer migrator is interested,
# we just advance the database version in the expected database to make the test pass
expected_dbversion = expected_db.get_entry('VERSIONS', 'DATABASE')
dbmgtr_dbversion = migrated_db.get_entry('VERSIONS', 'DATABASE')
if expected_dbversion and dbmgtr_dbversion:
if expected_dbversion['VERSION'] == last_interested_version and dbmgtr_dbversion['VERSION'] > expected_dbversion['VERSION']:
expected_dbversion['VERSION'] = dbmgtr_dbversion['VERSION']
expected_db.set_entry('VERSIONS', 'DATABASE', expected_dbversion)


class TestMellanoxBufferMigrator(object):
@classmethod
def setup_class(cls):
Expand Down Expand Up @@ -76,16 +87,6 @@ def check_appl_db(self, result, expected):
for key in keys:
assert expected.get_all(expected.APPL_DB, key) == result.get_all(result.APPL_DB, key)

def advance_version_for_expected_database(self, migrated_db, expected_db):
# In case there are new db versions greater than the latest one that mellanox buffer migrator is interested,
# we just advance the database version in the expected database to make the test pass
expected_dbversion = expected_db.get_entry('VERSIONS', 'DATABASE')
dbmgtr_dbversion = migrated_db.get_entry('VERSIONS', 'DATABASE')
if expected_dbversion and dbmgtr_dbversion:
if expected_dbversion['VERSION'] == self.version_list[-1] and dbmgtr_dbversion['VERSION'] > expected_dbversion['VERSION']:
expected_dbversion['VERSION'] = dbmgtr_dbversion['VERSION']
expected_db.set_entry('VERSIONS', 'DATABASE', expected_dbversion)

@pytest.mark.parametrize('scenario',
['empty-config',
'non-default-config',
Expand All @@ -103,7 +104,7 @@ def test_mellanox_buffer_migrator_negative_cold_reboot(self, scenario):
dbmgtr = db_migrator.DBMigrator(None)
dbmgtr.migrate()
expected_db = self.mock_dedicated_config_db(db_after_migrate)
self.advance_version_for_expected_database(dbmgtr.configDB, expected_db.cfgdb)
advance_version_for_expected_database(dbmgtr.configDB, expected_db.cfgdb, self.version_list[-1])
self.check_config_db(dbmgtr.configDB, expected_db.cfgdb)
assert not dbmgtr.mellanox_buffer_migrator.is_buffer_config_default

Expand Down Expand Up @@ -142,7 +143,7 @@ def test_mellanox_buffer_migrator_for_cold_reboot(self, sku_version, topo):

# Eventually, the config db should be migrated to the latest version
expected_db = self.mock_dedicated_config_db(self.make_db_name_by_sku_topo_version(sku, topo, self.version_list[-1]))
self.advance_version_for_expected_database(dbmgtr.configDB, expected_db.cfgdb)
advance_version_for_expected_database(dbmgtr.configDB, expected_db.cfgdb, self.version_list[-1])
self.check_config_db(dbmgtr.configDB, expected_db.cfgdb)
assert dbmgtr.mellanox_buffer_migrator.is_buffer_config_default

Expand All @@ -158,7 +159,7 @@ def mellanox_buffer_migrator_warm_reboot_runner(self, input_config_db, input_app
import db_migrator
dbmgtr = db_migrator.DBMigrator(None)
dbmgtr.migrate()
self.advance_version_for_expected_database(dbmgtr.configDB, expected_config_db.cfgdb)
advance_version_for_expected_database(dbmgtr.configDB, expected_config_db.cfgdb, self.version_list[-1])
assert dbmgtr.mellanox_buffer_migrator.is_buffer_config_default == is_buffer_config_default_expected
self.check_config_db(dbmgtr.configDB, expected_config_db.cfgdb)
self.check_appl_db(dbmgtr.appDB, expected_appl_db)
Expand Down Expand Up @@ -210,8 +211,10 @@ def test_port_autoneg_migrator(self):
import db_migrator
dbmgtr = db_migrator.DBMigrator(None)
dbmgtr.migrate()

dbconnector.dedicated_dbs['CONFIG_DB'] = os.path.join(mock_db_path, 'config_db', 'port-an-expected')
expected_db = Db()
advance_version_for_expected_database(dbmgtr.configDB, expected_db.cfgdb, 'version_2_0_1')

assert dbmgtr.configDB.get_table('PORT') == expected_db.cfgdb.get_table('PORT')
assert dbmgtr.configDB.get_table('VERSIONS') == expected_db.cfgdb.get_table('VERSIONS')