@@ -9,9 +9,9 @@ class TestGetKV(TestCase):
99 def setUp (self ):
1010 self .request = self .set_up_patch ('consul_kv.api.request' )
1111 self .request .urlopen .return_value .__exit__ = lambda a , b , c , d : None
12- self .json_dump = '[{"Key": "key1", "Value": "Value"}]'
1312 self .base64decode = self .set_up_patch ('consul_kv.api.b64decode' )
1413 self .base64decode .return_value = 'value1' .encode ('utf-8' )
14+ self .json_dump = '[{"Key": "key1", "Value": "Value"}]'
1515 self .request .urlopen .return_value .__enter__ = lambda x : Mock (
1616 read = lambda : Mock (
1717 decode = lambda _ : self .json_dump
@@ -77,3 +77,31 @@ def test_get_kv_returns_mapping(self):
7777 'key1' : 'value1'
7878 }
7979 self .assertEqual (ret , expected_mapping )
80+
81+ def test_get_kv_returns_empty_results_as_none (self ):
82+ self .json_dump = '[{"Key": "key1", "Value": null}]'
83+ self .request .urlopen .return_value .__enter__ = lambda x : Mock (
84+ read = lambda : Mock (
85+ decode = lambda _ : self .json_dump
86+ )
87+ )
88+
89+ ret = get_kv ('some/path' , recurse = True )
90+
91+ expected_mapping = {
92+ 'key1' : None
93+ }
94+ self .assertEqual (ret , expected_mapping )
95+
96+ def test_get_kv_ignores_empty_keys (self ):
97+ self .json_dump = '[{"Key": "", "Value": null}]'
98+ self .request .urlopen .return_value .__enter__ = lambda x : Mock (
99+ read = lambda : Mock (
100+ decode = lambda _ : self .json_dump
101+ )
102+ )
103+
104+ ret = get_kv ('some/path' , recurse = True )
105+
106+ expected_mapping = {}
107+ self .assertEqual (ret , expected_mapping )
0 commit comments