Skip to content

Commit e97a808

Browse files
committed
Add test for port breakout db config
1 parent 05c832a commit e97a808

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

tests/test_config_mgmt.py

+25-17
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
1-
import pytest
21
from config.config_mgmt import ConfigMgmt
32
from utilities_common.general import load_module_from_source
3+
from unittest.mock import patch, MagicMock
4+
45

56
sonic_cfggen = load_module_from_source('sonic_cfggen', '/usr/local/bin/sonic-cfggen')
67

7-
def test_output_to_db_and_mod_config(mocker):
8+
9+
def test_write_configdb_port_breakout():
810
mock_db_data = {
911
'PORT': {
10-
'Ethernet0': {'admin_status': 'up'},
11-
'Ethernet4': {'admin_status': 'down'}
12+
'Ethernet80': {'admin_status': 'up'},
13+
'Ethernet82': {'admin_status': 'down'}
1214
}
1315
}
1416

15-
mocker.patch('sonic_cfggen.FormatConverter.output_to_db', return_value=mock_db_data)
16-
17-
mock_mod_config = mocker.patch.object(ConfigMgmt, 'mod_config')
18-
19-
cm = ConfigMgmt()
20-
cm.configdb = mocker.Mock()
21-
22-
data = {}
23-
cm._ConfigMgmt__process_db_diff(data, {})
24-
25-
sonic_cfggen.FormatConverter.output_to_db.assert_called_once()
26-
27-
assert mock_mod_config.call_count == 2
17+
with patch('sonic_cfggen.FormatConverter.to_deserialized', return_value={}), \
18+
patch('sonic_cfggen.FormatConverter.output_to_db', return_value=mock_db_data), \
19+
patch('sonic_cfggen.deep_update'), \
20+
patch('config.config_mgmt.ConfigDBConnector') as mock_configdb_class:
21+
22+
mock_configdb_instance = MagicMock()
23+
mock_configdb_class.return_value = mock_configdb_instance
24+
25+
cm = ConfigMgmt()
26+
cm.configdb = mock_configdb_instance
27+
cm.writeConfigDB(jDiff={})
28+
29+
calls = [
30+
({'PORT': {'Ethernet80': {'admin_status': 'up'}}},),
31+
({'PORT': {'Ethernet82': {'admin_status': 'down'}}},)
32+
]
33+
called_args = [tuple(c.args) for c in mock_configdb_instance.mod_config.call_args_list]
34+
assert called_args == calls
35+

0 commit comments

Comments
 (0)