def test_should_return_filtered_csv_when_csv_endpoint_is_called(self): Disaster(**self.disaster).save() disaster_attr2 = self.disaster.copy() disaster_attr2['status'] = "Closed" Disaster(**disaster_attr2).save() disaster2 = self.disaster.copy() disaster2['name'] = self.disaster_type2 sdisaster = Disaster(**disaster2).save() response = self.client.get(self.CSV_ENDPOINT, format='csv') expected_response = "name,description,location,status,date\r\n" \ "Fire,Big Flood,%s,Assessment,2014-12-01 00:00:00" % (self.district.name,) expected_response = expected_response + "\r\nFire,Big Flood,%s,Closed,2014-12-01 00:00:00" % (self.district.name) expected_response = expected_response + "\r\nFlood,Big Flood,%s,Assessment,2014-12-01 00:00:00" % (self.district.name) self.assertEqual(200, response.status_code) self.assertEqual(3, len(response.data)) self.assertTrue(isinstance(response.accepted_renderer, CSVRenderer)) self.assertEqual(collections.Counter(split_text(expected_response)), collections.Counter(split_text(response.content))) response = self.client.get(self.CSV_ENDPOINT + '?status=Assessment&from=undefined', format='csv') expected_response = "name,description,location,status,date\r\n" \ "Fire,Big Flood,%s,Assessment,2014-12-01 00:00:00" % (self.district.name,) expected_response = expected_response + "\r\nFlood,Big Flood,%s,Assessment,2014-12-01 00:00:00" % (self.district.name) self.assertEqual(200, response.status_code) self.assertEqual(2, len(response.data)) self.assertTrue(isinstance(response.accepted_renderer, CSVRenderer)) self.assertEqual(collections.Counter(split_text(expected_response)), collections.Counter(split_text(response.content))) sdisaster.date = "2014-12-02 00:00:00" sdisaster.save() response = self.client.get(self.CSV_ENDPOINT + '?status=Assessment&from=2014-12-02 00:00:00', format='csv') expected_response = "name,description,location,status,date\r\n" \ "Flood,Big Flood,%s,Assessment,2014-12-02 00:00:00" % (self.district.name) self.assertEqual(200, response.status_code) self.assertEqual(1, len(response.data)) self.assertTrue(isinstance(response.accepted_renderer, CSVRenderer)) self.assertEqual(collections.Counter(split_text(expected_response)), collections.Counter(split_text(response.content))) response = self.client.get(self.CSV_ENDPOINT + '?to=2014-12-01 00:00:00', format='csv') expected_response = "name,description,location,status,date\r\n" \ "Fire,Big Flood,%s,Assessment,2014-12-01 00:00:00" % (self.district.name,) expected_response = expected_response + "\r\nFire,Big Flood,%s,Closed,2014-12-01 00:00:00" % (self.district.name) self.assertEqual(200, response.status_code) self.assertEqual(2, len(response.data)) self.assertTrue(isinstance(response.accepted_renderer, CSVRenderer)) self.assertEqual(collections.Counter(split_text(expected_response)), collections.Counter(split_text(response.content)))