7
7
from swsscommon import swsscommon
8
8
from swsscommon .swsscommon import ConfigDBPipeConnector , DBInterface , SonicV2Connector , SonicDBConfig , ConfigDBConnector , SonicDBConfig , transpose_pops , SonicDBKey
9
9
import json
10
+ import gc
11
+
12
+ import sys
13
+ if sys .version_info .major == 3 :
14
+ from unittest import mock
15
+ else :
16
+ # Expect the 'mock' package for python 2
17
+ # https://pypi.python.org/pypi/mock
18
+ import mock
10
19
11
20
def test_ProducerTable ():
12
21
db = swsscommon .DBConnector ("APPL_DB" , 0 , True )
@@ -804,6 +813,24 @@ def test_ConfigDBConnector():
804
813
assert len (allconfig ) == 0
805
814
806
815
816
+ @mock .patch ("swsscommon.swsscommon.ConfigDBConnector.close" )
817
+ def test_ConfigDBConnector_with_statement (self ):
818
+ # test ConfigDBConnector support 'with' statement
819
+ with ConfigDBConnector () as config_db :
820
+ assert config_db .db_name == ""
821
+ assert config_db .TABLE_NAME_SEPARATOR == "|"
822
+ config_db .connect (wait_for_init = False )
823
+ assert config_db .db_name == "CONFIG_DB"
824
+ assert config_db .TABLE_NAME_SEPARATOR == "|"
825
+ config_db .get_redis_client (config_db .CONFIG_DB ).flushdb ()
826
+ config_db .set_entry ("TEST_PORT" , "Ethernet111" , {"alias" : "etp1x" })
827
+ allconfig = config_db .get_config ()
828
+ assert allconfig ["TEST_PORT" ]["Ethernet111" ]["alias" ] == "etp1x"
829
+
830
+ # check close() method called by with statement
831
+ ConfigDBConnector .close .assert_called_once_with ()
832
+
833
+
807
834
def test_SmartSwitchDBConnector ():
808
835
test_dir = os .path .dirname (os .path .abspath (__file__ ))
809
836
global_db_config = os .path .join (test_dir , 'redis_multi_db_ut_config' , 'database_global.json' )
@@ -821,3 +848,4 @@ def test_SmartSwitchDBConnector():
821
848
assert "dputest2" in keys
822
849
assert tbl .get ("dputest1" )[1 ][0 ] == ("dashfield1" , "dashvalue1" )
823
850
assert tbl .get ("dputest2" )[1 ][1 ] == ("dashfield2" , "dashvalue2" )
851
+
0 commit comments