@@ -31,35 +31,51 @@ def test_kvs_dir_open(self):
3131 with flux .kvs .get_dir (self .f ) as d :
3232 self .assertIsNotNone (d )
3333
34- def set_and_check_context (self , key , value , msg = "" ):
34+ def set_and_check_context (self , key , value , type ):
3535 kd = flux .kvs .KVSDir (self .f )
3636 kd [key ] = value
3737 kd .commit ()
38- nv = kd [key ]
39- self .assertEqual (value , nv )
40- self .assertFalse (isinstance (nv , bytes ))
41- return kd
38+
39+ kd2 = flux .kvs .KVSDir (self .f )
40+ nv = kd2 [key ]
41+ if isinstance (value , bytes ) and type is str :
42+ self .assertEqual (value .decode ('utf-8' ), nv )
43+ else :
44+ self .assertEqual (value , nv )
45+ if type is not None :
46+ self .assertTrue (isinstance (nv , type ))
47+
48+ return kd2
4249
4350 def test_set_int (self ):
44- self .set_and_check_context ("int" , 10 )
51+ self .set_and_check_context ("int" , 10 , int )
4552
4653 def test_set_float (self ):
47- self .set_and_check_context ("float" , 10.5 )
54+ self .set_and_check_context ("float" , 10.5 , float )
4855
4956 def test_set_string (self ):
50- self .set_and_check_context ("string" , "stuff" )
57+ self .set_and_check_context ("string" , "stuff" , str )
58+
59+ def test_set_none (self ):
60+ self .set_and_check_context ("none" , None , None )
5161
5262 def test_set_unicode (self ):
53- self .set_and_check_context ("unicode" , "\u32db \u263a \u32e1 " )
63+ self .set_and_check_context ("unicode" , "\u32db \u263a \u32e1 " , str )
64+
65+ def test_set_bytes (self ):
66+ self .set_and_check_context ("bytes" , bytes .fromhex ("deadbeef" ), bytes )
5467
5568 def test_set_list (self ):
56- self .set_and_check_context ("list" , [1 , 2 , 3 , 4 ])
69+ self .set_and_check_context ("list" , [1 , 2 , 3 , 4 ], list )
5770
5871 def test_set_dict (self ):
5972 self .set_and_check_context (
60- "dict" , {"thing" : "stuff" , "other thing" : "more stuff" }
73+ "dict" , {"thing" : "stuff" , "other thing" : "more stuff" }, dict
6174 )
6275
76+ def test_set_not_legal_json (self ):
77+ self .set_and_check_context ("badjson" , b"{" , str )
78+
6379 def test_exists_dir (self ):
6480 with flux .kvs .get_dir (self .f ) as kd :
6581 kd .mkdir ("pytestdir" )
@@ -79,7 +95,7 @@ def test_commit_flags(self):
7995 self .assertTrue (flux .kvs .exists (self .f , "flagcheck" ))
8096
8197 def test_remove (self ):
82- kd = self .set_and_check_context ("todel" , "things to delete" )
98+ kd = self .set_and_check_context ("todel" , "things to delete" , str )
8399 del kd ["todel" ]
84100 kd .commit ()
85101 with self .assertRaises (KeyError ):
@@ -96,7 +112,7 @@ def test_fill(self):
96112 self .assertEqual (kd ["dir" ]["other_thing" ], "dirstuff" )
97113
98114 def test_set_deep (self ):
99- self .set_and_check_context ("a.b.c.e.f.j.k" , 5 )
115+ self .set_and_check_context ("a.b.c.e.f.j.k" , 5 , int )
100116
101117 def test_bad_init (self ):
102118 with self .assertRaises (ValueError ):
0 commit comments