def test_display_data_ok(self): data_point_ = DataPoint() category_ = Category.objects.create() data_point_.category_id = category_.pk data_point_.name = 'Test Data Point' data_point_.resource = 'https://data.pr.gov/resource/abcd-1234.json' data_point_.date_field = 'date' data_point_.data_field = 'total' data_point_.trend_upwards_positive = True data_point_.featured = True data_point_.save() responses.add(responses.GET, 'https://data.pr.gov/resource/abcd-1234.json', body=self.test_data, status=200, content_type='application/json') r = DataPoint.display_data(data_point_, token={'access_token': '123abc'}) self.assertEqual('Test Data Point', r['data']) self.assertEqual([{'date': datetime.strptime(x[data_point_.date_field][:10], '%Y-%m-%d'), 'value': x[data_point_.data_field]} for x in json.loads(self.test_data)], r['data_set']) self.assertEqual(datetime(2014, 12, 1, 0, 0), r['latest_month']['date']) self.assertEqual('6.534', r['latest_month']['value']) self.assertEqual(datetime(2014, 11, 1, 0, 0), r['previous_month']['date']) self.assertEqual('5.855', r['previous_month']['value']) self.assertEqual(datetime(2013, 12, 1, 0, 0), r['month_last_year']['date']) self.assertEqual('6.134', r['month_last_year']['value']) self.assertEqual(6.52, r['percent_change']) self.assertEqual(True, r['trend_direction']) self.assertEqual(True, r['trend_positive'])
def test_display_summary_date_error(self): data_point_ = DataPoint() category_ = Category.objects.create() data_point_.category_id = category_.pk data_point_.name = 'Test Data Point' data_point_.resource = 'https://data.pr.gov/resource/abcd-1234.json' data_point_.date_field = 'date' data_point_.data_field = 'total' data_point_.trend_upwards_positive = True data_point_.featured = True data_point_.save() responses.add(responses.GET, 'https://data.pr.gov/resource/abcd-1234.json', body=self.bad_test_data, status=200, content_type='application/json') r = DataPoint.display_data(data_point_, token={'access_token': '123abc'}) self.assertDictEqual({'name': data_point_.name}, {'name': r['name']}) self.assertRaisesMessage(expected_exception=ValueError, expected_message='Incorrect date format')
def test_display_summary_ok(self): data_point_ = DataPoint() category_ = Category.objects.create(name='Test Category') data_point_.category_id = category_.pk data_point_.name = 'Test Data Point' data_point_.resource = 'https://data.pr.gov/resource/abcd-1234.json' data_point_.date_field = 'date' data_point_.data_field = 'total' data_point_.trend_upwards_positive = True data_point_.featured = True data_point_.save() responses.add(responses.GET, 'https://data.pr.gov/resource/abcd-1234.json', body=self.test_data, status=200, content_type='application/json') r = DataPoint.display_data(data_point_, token={'access_token': '123abc'}) self.assertEqual('Test Data Point', r['data']) self.assertEqual(datetime(2014, 12, 1, 0, 0), r['latest_month']['date']) self.assertEqual('6.534', r['latest_month']['value']) self.assertEqual(6.52, r['percent_change']) self.assertEqual(True, r['trend_direction']) self.assertEqual(True, r['trend_positive']) self.assertEqual('Test Category', data_point_.category.name)