1+ import io
12import json
23import struct
34import unittest
@@ -24,6 +25,52 @@ def test_json_result_with_http(self, mock_urlopen):
2425 self .assertEqual (type (ret ), GroongaResult )
2526 self .assertEqual (ret .status , 0 )
2627
28+ @patch ("poyonga.client.urlopen" )
29+ def test_load_list (self , mock_urlopen ):
30+ m = Mock ()
31+ m .read .side_effect = ["[[0, 1337566253.89858, 0.000354], 1]" ]
32+ mock_urlopen .return_value = m
33+ ret = self .g .call ("load" ,
34+ table = "Site" ,
35+ values = [{"_key" : "groonga.org" }])
36+ self .assertEqual (ret .body , 1 )
37+ request = mock_urlopen .call_args [0 ][0 ]
38+ self .assertEqual ([{"_key" : "groonga.org" }],
39+ json .loads (request .data ))
40+ self .assertEqual ({"Content-type" : "application/json" },
41+ request .headers )
42+
43+ @patch ("poyonga.client.urlopen" )
44+ def test_load_json (self , mock_urlopen ):
45+ m = Mock ()
46+ m .read .side_effect = ["[[0, 1337566253.89858, 0.000354], 1]" ]
47+ mock_urlopen .return_value = m
48+ ret = self .g .call ("load" ,
49+ table = "Site" ,
50+ values = json .dumps ([{"_key" : "groonga.org" }]))
51+ self .assertEqual (ret .body , 1 )
52+ request = mock_urlopen .call_args [0 ][0 ]
53+ self .assertEqual ([{"_key" : "groonga.org" }],
54+ json .loads (request .data ))
55+ self .assertEqual ({"Content-type" : "application/json" },
56+ request .headers )
57+
58+ @patch ("poyonga.client.urlopen" )
59+ def test_load_io (self , mock_urlopen ):
60+ m = Mock ()
61+ m .read .side_effect = ["[[0, 1337566253.89858, 0.000354], 1]" ]
62+ mock_urlopen .return_value = m
63+ json_values = json .dumps ([{"_key" : "groonga.org" }])
64+ ret = self .g .call ("load" ,
65+ table = "Site" ,
66+ values = io .BytesIO (json_values .encode ()))
67+ self .assertEqual (ret .body , 1 )
68+ request = mock_urlopen .call_args [0 ][0 ]
69+ self .assertEqual ([{"_key" : "groonga.org" }],
70+ json .loads (request .data .read ()))
71+ self .assertEqual ({"Content-type" : "application/json" },
72+ request .headers )
73+
2774
2875class PoyongaGQTPTestCase (unittest .TestCase ):
2976 def setUp (self ):
0 commit comments