10
10
from xlrd import open_workbook
11
11
12
12
from seed .models import ASSESSED_RAW , Column , Property , PropertyState , PropertyView
13
- from seed .test_helpers .fake import FakeCycleFactory
14
- from seed .tests .util import DataMappingBaseTestCase
13
+ from seed .test_helpers .fake import (
14
+ FakeCycleFactory ,
15
+ FakePropertyFactory ,
16
+ FakePropertyViewFactory ,
17
+ )
18
+ from seed .tests .util import AccessLevelBaseTestCase , DataMappingBaseTestCase
15
19
16
20
17
21
class ExportReport (DataMappingBaseTestCase ):
@@ -120,6 +124,25 @@ def test_report_aggregated(self):
120
124
121
125
assert response .json ()["aggregated_data" ]["property_counts" ] == [{"yr_e" : "2015" , "num_properties" : 5 , "num_properties_w-data" : 5 }]
122
126
127
+ def test_report_aggregated_count (self ):
128
+ url = reverse ("api:v3:organizations-report-aggregated" , args = [self .org .pk ])
129
+ data = {
130
+ "cycle_ids" : [self .cycle .id , self .cycle_2 .id ],
131
+ "x_var" : "Count" ,
132
+ "y_var" : "site_eui" ,
133
+ "access_level_instance_id" : self .org .root .id ,
134
+ }
135
+ response = self .client .get (url , data )
136
+ assert response .json ()["aggregated_data" ]["property_counts" ] == [
137
+ {"yr_e" : "2016" , "num_properties" : 5 , "num_properties_w-data" : 5 },
138
+ {"yr_e" : "2015" , "num_properties" : 5 , "num_properties_w-data" : 5 },
139
+ ]
140
+
141
+ data ["cycle_ids" ] = [self .cycle .id ]
142
+ response = self .client .get (url , data )
143
+
144
+ assert response .json ()["aggregated_data" ]["property_counts" ] == [{"yr_e" : "2015" , "num_properties" : 5 , "num_properties_w-data" : 5 }]
145
+
123
146
def test_report_missing_arg (self ):
124
147
url = reverse ("api:v3:organizations-report-aggregated" , args = [self .org .pk ])
125
148
data = {
@@ -130,3 +153,60 @@ def test_report_missing_arg(self):
130
153
response = self .client .get (url , data )
131
154
132
155
assert response .status_code == 400
156
+
157
+
158
+ class ExportReportALITests (AccessLevelBaseTestCase ):
159
+ def setUp (self ):
160
+ super ().setUp ()
161
+ self .cycle = self .cycle_factory .get_cycle ()
162
+ self .property_factory = FakePropertyFactory (organization = self .org )
163
+ self .property_view_factory = FakePropertyViewFactory (organization = self .org , cycle = self .cycle )
164
+
165
+ # two alis on the same level, "child"
166
+ self .kid_1 = self .child_level_instance
167
+ self .kid_2 = self .org .add_new_access_level_instance (self .org .root .id , "kid_2" )
168
+
169
+ # two properties in each level
170
+ self .property_1 = self .property_factory .get_property (access_level_instance = self .kid_1 )
171
+ self .view_1 = self .property_view_factory .get_property_view (prprty = self .property_1 , site_eui = 30 )
172
+ self .property_2 = self .property_factory .get_property (access_level_instance = self .kid_1 )
173
+ self .view_2 = self .property_view_factory .get_property_view (prprty = self .property_2 , site_eui = 40 )
174
+
175
+ self .property_3 = self .property_factory .get_property (access_level_instance = self .kid_2 )
176
+ self .view_3 = self .property_view_factory .get_property_view (prprty = self .property_3 , site_eui = 50 )
177
+ self .property_4 = self .property_factory .get_property (access_level_instance = self .kid_2 )
178
+ self .view_4 = self .property_view_factory .get_property_view (prprty = self .property_4 , site_eui = 60 )
179
+
180
+ def test_report_aggregated_with_access_level (self ):
181
+ url = reverse ("api:v3:organizations-report-aggregated" , args = [self .org .pk ])
182
+ data = {
183
+ "cycle_ids" : [self .cycle .id ],
184
+ "x_var" : "site_eui" ,
185
+ "y_var" : "child" ,
186
+ "access_level_instance_id" : self .org .root .id ,
187
+ }
188
+
189
+ response = self .client .get (url , data )
190
+ self .assertListEqual (
191
+ response .json ()["aggregated_data" ]["chart_data" ],
192
+ [{"y" : "kid_2" , "x" : 55.0 , "yr_e" : "2016" }, {"y" : "child" , "x" : 35.0 , "yr_e" : "2016" }],
193
+ )
194
+
195
+ def test_report_with_access_level (self ):
196
+ url = reverse ("api:v3:organizations-report" , args = [self .org .pk ])
197
+ data = {
198
+ "cycle_ids" : [self .cycle .id ],
199
+ "x_var" : "child" ,
200
+ "y_var" : "site_eui" ,
201
+ }
202
+ response = self .client .get (url , data )
203
+
204
+ self .assertListEqual (
205
+ response .json ()["data" ]["chart_data" ],
206
+ [
207
+ {"id" : self .view_1 .id , "x" : "child" , "y" : 30.0 , "yr_e" : "2016" },
208
+ {"id" : self .view_2 .id , "x" : "child" , "y" : 40.0 , "yr_e" : "2016" },
209
+ {"id" : self .view_3 .id , "x" : "kid_2" , "y" : 50.0 , "yr_e" : "2016" },
210
+ {"id" : self .view_4 .id , "x" : "kid_2" , "y" : 60.0 , "yr_e" : "2016" },
211
+ ],
212
+ )
0 commit comments