@@ -18,26 +18,38 @@ def _build_response_object(status_code=200, content=""):
18
18
return resp
19
19
20
20
21
- def _mocked_session ( method = "GET" , status_code = 200 , content = "" ):
21
+ def _mocked_session (method = "GET" , status_code = 200 , content = "" ):
22
22
23
23
method = method .upper ()
24
24
25
- def check_method (* args , ** kwargs ):
25
+ def request (* args , ** kwargs ):
26
+ c = content
27
+
26
28
# Check method
27
29
assert method == kwargs .get ('method' , 'GET' )
28
- c = content
30
+
29
31
if method == 'POST' :
30
- if not isinstance (c , dict ):
31
- c = json .dumps (c )
32
- assert c == kwargs .get ('data' )
33
- c = ''
32
+ data = kwargs .get ('data' , None )
33
+
34
+ if data is not None :
35
+ # Data must be a string
36
+ assert isinstance (data , str )
37
+
38
+ # Data must be a JSON string
39
+ assert c == json .loads (data )
40
+
41
+ c = data
42
+
43
+ # Anyway, Content must be a JSON string (or empty string)
44
+ if not isinstance (c , str ):
45
+ c = json .dumps (c )
34
46
35
47
return _build_response_object (status_code = status_code , content = c )
36
48
37
49
mocked = patch .object (
38
50
session ,
39
51
'request' ,
40
- side_effect = check_method
52
+ side_effect = request
41
53
)
42
54
43
55
return mocked
@@ -140,11 +152,16 @@ def test_remove_scheduled_delete(self):
140
152
cli .remove_scheduled_delete (1 )
141
153
142
154
def test_query (self ):
143
- expected = ('[{"name":"foo",'
144
- '"columns":["time","sequence_number","column_one"],'
145
- '"points":[[1383876043,16,"2"],[1383876043,15,"1"],'
146
- '[1383876035,14,"2"],[1383876035,13,"1"]]}]' )
147
- with _mocked_session ('get' , 200 , expected ) as mocked :
155
+ data = [
156
+ { "name" :"foo" ,
157
+ "columns" : ["time" , "sequence_number" , "column_one" ],
158
+ "points" : [
159
+ [1383876043 , 16 , "2" ], [1383876043 , 15 , "1" ],
160
+ [1383876035 , 14 , "2" ], [1383876035 , 13 , "1" ]
161
+ ]
162
+ }
163
+ ]
164
+ with _mocked_session ('get' , 200 , data ) as mocked :
148
165
cli = InfluxDBClient ('host' , 8086 , 'username' , 'password' , 'db' )
149
166
result = cli .query ('select column_one from foo;' )
150
167
assert len (result [0 ]['points' ]) == 4
@@ -161,7 +178,7 @@ def test_create_database(self):
161
178
assert cli .create_database ('new_db' ) is True
162
179
163
180
@raises (Exception )
164
- def test_creata_database_fails (self ):
181
+ def test_create_database_fails (self ):
165
182
with _mocked_session ('post' , 401 ) as mocked :
166
183
cli = InfluxDBClient ('host' , 8086 , 'username' , 'password' , 'db' )
167
184
cli .create_database ('new_db' )
@@ -178,8 +195,10 @@ def test_delete_database_fails(self):
178
195
cli .delete_database ('old_db' )
179
196
180
197
def test_get_database_list (self ):
181
- expected = ('[{"name": "a_db"}]' )
182
- with _mocked_session ('get' , 200 , expected ) as mocked :
198
+ data = [
199
+ {"name" : "a_db" }
200
+ ]
201
+ with _mocked_session ('get' , 200 , data ) as mocked :
183
202
cli = InfluxDBClient ('host' , 8086 , 'username' , 'password' )
184
203
assert len (cli .get_database_list ()) == 1
185
204
assert cli .get_database_list ()[0 ]['name' ] == 'a_db'
0 commit comments