1
1
from rest_framework .test import APITestCase
2
- from tests .testapp .models import TimeSeries
2
+ from tests .testapp .models import TimeSeries , CustomIndexSeries
3
3
from wq .io import load_string
4
4
import json
5
5
import datetime
@@ -17,6 +17,10 @@ def setUp(self):
17
17
)
18
18
for date , value in data :
19
19
TimeSeries .objects .create (date = date , value = value )
20
+ CustomIndexSeries .objects .create (
21
+ code = 'v' + date .replace ('-' , '' ),
22
+ value = value ,
23
+ )
20
24
21
25
def test_view_csv (self ):
22
26
response = self .client .get ("/timeseries.csv" )
@@ -41,6 +45,8 @@ def test_view_json(self):
41
45
self .assertEqual (response .accepted_media_type , "application/json" )
42
46
data = json .loads (response .content .decode ('utf-8' ))
43
47
self .assertEqual (len (data ), 5 )
48
+ self .assertIn ('id' , data [0 ])
49
+ self .assertEqual (data [0 ]["id" ], 1 )
44
50
self .assertEqual (data [0 ]["value" ], 0.5 )
45
51
self .assertEqual (data [0 ]["date" ], "2014-01-01T00:00:00.000Z" )
46
52
@@ -53,6 +59,11 @@ def test_view_json_kwargs(self):
53
59
date = datetime .datetime .utcfromtimestamp (data [0 ]["date" ] / 1000 )
54
60
self .assertEqual (date , datetime .datetime (2014 , 1 , 1 ))
55
61
62
+ response = self .client .get ("/timeseries.json?orient=index" )
63
+ data = json .loads (response .content .decode ('utf-8' ))
64
+ self .assertEqual (len (data .values ()), 5 )
65
+ self .assertEqual (data ["1" ]["value" ], 0.5 )
66
+
56
67
def test_view_html (self ):
57
68
response = self .client .get ("/timeseries?test=1" )
58
69
expected = open (
@@ -111,5 +122,24 @@ def test_from_file(self):
111
122
self .assertEqual (len (data ), 4 )
112
123
self .assertEqual (data [0 ].x , '5' )
113
124
125
+ def test_customindex_csv (self ):
126
+ response = self .client .get ("/customindex.csv" )
127
+ data = self .load_string (response )
128
+ self .assertEqual (len (data ), 5 )
129
+ self .assertEqual (data [0 ].code , 'v20140101' )
130
+ self .assertEqual (data [0 ].value , '0.5' )
131
+
132
+ def test_customindex_json (self ):
133
+ response = self .client .get ("/customindex.json" )
134
+ data = json .loads (response .content .decode ('utf-8' ))
135
+ self .assertEqual (len (data ), 5 )
136
+ self .assertEqual (data [0 ]['code' ], 'v20140101' )
137
+ self .assertEqual (data [0 ]['value' ], 0.5 )
138
+
139
+ response = self .client .get ("/customindex.json?orient=index" )
140
+ data = json .loads (response .content .decode ('utf-8' ))
141
+ self .assertEqual (len (data ), 5 )
142
+ self .assertEqual (data ['v20140101' ]['value' ], 0.5 )
143
+
114
144
def load_string (self , response ):
115
145
return load_string (response .content .decode ('utf-8' ))
0 commit comments