1
- import pytest
2
1
from config .config_mgmt import ConfigMgmt
3
2
from utilities_common .general import load_module_from_source
3
+ from unittest .mock import patch , MagicMock
4
+
4
5
5
6
sonic_cfggen = load_module_from_source ('sonic_cfggen' , '/usr/local/bin/sonic-cfggen' )
6
7
7
- def test_output_to_db_and_mod_config (mocker ):
8
+
9
+ def test_write_configdb_port_breakout ():
8
10
mock_db_data = {
9
11
'PORT' : {
10
- 'Ethernet0 ' : {'admin_status' : 'up' },
11
- 'Ethernet4 ' : {'admin_status' : 'down' }
12
+ 'Ethernet80 ' : {'admin_status' : 'up' },
13
+ 'Ethernet82 ' : {'admin_status' : 'down' }
12
14
}
13
15
}
14
16
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