Skip to content

Commit c3dc796

Browse files
seifertericericseifert
authored andcommitted
Add unittest for ConfigDBConnector
1 parent 0f3e70d commit c3dc796

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
'redis>=4.5.4;python_version >= "3.0"',
55
'redis>=3.5.3;python_version < "3.0"',
66
'redis-dump-load',
7+
'fakeredis',
78
]
89

910
high_performance_deps = [

test/test_configdb.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import os
2+
import sys
3+
4+
from unittest import mock
5+
6+
from unittest import TestCase
7+
8+
modules_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
9+
sys.path.insert(0, os.path.join(modules_path, 'src'))
10+
11+
import swsssdk
12+
import fakeredis
13+
14+
15+
class TestConfigDB(TestCase):
16+
def test__configdb_pipe(self):
17+
18+
s_db = swsssdk.ConfigDBPipeConnector()
19+
#Use fakeredis to mock redis db
20+
r_db = fakeredis.FakeStrictRedis(version=5)
21+
s_db.get_redis_client = lambda db_name: r_db
22+
s_db.db_name = "CONFIG_DB"
23+
24+
s_db.mod_config({'TABLE_NAME': { 'row_key': {'column_key1': 'valueA1', 'column_key2': 'valueB1'}}})
25+
self.assertEqual(r_db.hget('TABLE_NAME|row_key', 'column_key1'), b'valueA1')
26+
self.assertEqual(r_db.hget('TABLE_NAME|row_key', 'column_key2'), b'valueB1')
27+
s_db.mod_config({'TABLE_NAME': { 'row_key': {'column_key1': 'valueA2'}}}, table_delete='TABLE_NAME')
28+
self.assertEqual(r_db.hget('TABLE_NAME|row_key', 'column_key1'), b'valueA2')
29+
self.assertEqual(r_db.hget('TABLE_NAME|row_key', 'column_key2'), None)
30+
31+

0 commit comments

Comments
 (0)