1
+ import pytest
1
2
import json
3
+ import msgpack
2
4
3
5
4
6
def test_head_index_not_found (client , index_name ):
@@ -19,39 +21,71 @@ def test_get_index_not_found(client, index_name):
19
21
assert json .loads (req .content ) == {'error' : 'IndexNotFound' }
20
22
21
23
22
- def test_get_index (client , index_name , create_index ):
23
- req = client .get (f'/{ index_name } ' )
24
+ @pytest .mark .parametrize ('fmt' , ['json' , 'msgpack' ])
25
+ def test_get_index (client , index_name , create_index , fmt ):
26
+ req = client .get (f'/{ index_name } ' , headers = headers (fmt ))
24
27
assert req .status_code == 200 , req .content
25
- assert json .loads (req .content ) == {'version' : 0 , 'attributes' : []}
26
-
27
28
28
- def test_create_index (client , index_name ):
29
+ if fmt == 'json' :
30
+ expected = {'version' : 0 , 'attributes' : []}
31
+ else :
32
+ expected = {'v' : 0 , 'a' : {}}
33
+ assert decode (fmt , req .content ) == expected
34
+
35
+
36
+ def headers (fmt ):
37
+ if fmt == 'json' :
38
+ return {
39
+ 'Content-Type' : 'application/json' ,
40
+ 'Accept' : 'application/json' ,
41
+ }
42
+ elif fmt == 'msgpack' :
43
+ return {
44
+ 'Content-Type' : 'application/vnd.msgpack' ,
45
+ 'Accept' : 'application/vnd.msgpack' ,
46
+ }
47
+ else :
48
+ return {}
49
+
50
+
51
+ def decode (fmt , content ):
52
+ if fmt == 'json' :
53
+ return json .loads (content )
54
+ elif fmt == 'msgpack' :
55
+ return msgpack .loads (content )
56
+ else :
57
+ assert False
58
+
59
+
60
+ @pytest .mark .parametrize ('fmt' , ['json' , 'msgpack' ])
61
+ def test_create_index (client , index_name , fmt ):
29
62
req = client .head (f'/{ index_name } ' )
30
63
assert req .status_code == 404 , req .content
31
64
32
- req = client .put (f'/{ index_name } ' )
65
+ req = client .put (f'/{ index_name } ' , headers = headers ( fmt ) )
33
66
assert req .status_code == 200 , req .content
34
- assert json . loads ( req .content ) == {}
67
+ assert decode ( fmt , req .content ) == {}
35
68
36
- req = client .put (f'/{ index_name } ' )
69
+ req = client .put (f'/{ index_name } ' , headers = headers ( fmt ) )
37
70
assert req .status_code == 200 , req .content
38
- assert json . loads ( req .content ) == {}
71
+ assert decode ( fmt , req .content ) == {}
39
72
40
73
req = client .head (f'/{ index_name } ' )
41
74
assert req .status_code == 200 , req .content
42
75
43
76
44
- def test_delete_index (client , index_name , create_index ):
77
+ @pytest .mark .parametrize ('fmt' , ['json' , 'msgpack' ])
78
+ def test_delete_index (client , index_name , create_index , fmt ):
45
79
req = client .head (f'/{ index_name } ' )
46
80
assert req .status_code == 200 , req .content
47
81
48
- req = client .delete (f'/{ index_name } ' )
82
+ req = client .delete (f'/{ index_name } ' , headers = headers ( fmt ) )
49
83
assert req .status_code == 200 , req .content
50
- assert json . loads ( req .content ) == {}
84
+ assert decode ( fmt , req .content ) == {}
51
85
52
- req = client .delete (f'/{ index_name } ' )
86
+ req = client .delete (f'/{ index_name } ' , headers = headers ( fmt ) )
53
87
assert req .status_code == 200 , req .content
54
- assert json . loads ( req .content ) == {}
88
+ assert decode ( fmt , req .content ) == {}
55
89
56
90
req = client .head (f'/{ index_name } ' )
57
91
assert req .status_code == 404 , req .content
0 commit comments