def test_aggregate_history_view_since(self): """Tests ``views.AggregateHistoryView`` with a ``since`` parameter.""" slugs = ['foo', 'bar'] granularity = 'yearly' url = reverse('redis_metric_aggregate_history', args=['+'.join(slugs), granularity]) with patch('redis_metrics.views.R') as mock_r: # Set up a return value for ``get_metric_history_as_columns`` r = mock_r.return_value # Get an instance of our Mocked R class r.get_metric_history.return_value = self._metrichistory( slugs, granularity) # Do the Request & test results resp = self.client.get(url, {'since': "2012-12-25"}) self.assertEqual(resp.status_code, 200) # Make sure our Mocked R instance had its # ``get_metric_history_as_columns`` method called with the correct # parameters c = call.get_metric_history_as_columns( slugs=slugs, granularity=granularity, since=datetime(2012, 12, 25) ) r.assert_has_calls([c])
def _test_aggregate_history_view(self, slugs, granularity, since=None): """Tests ``views.AggregateHistoryView`` with the given slugs and granularity (i.e. 'daily', 'weekly', 'monthly', 'yearly').""" slug_set = set(slugs) url = reverse('redis_metric_aggregate_history', args=['+'.join(slugs), granularity]) with patch('redis_metrics.views.R') as mock_r: # Set up a return value for ``get_metric_history_as_columns`` r = mock_r.return_value # Get an instance of our Mocked R class r.get_metric_history.return_value = self._metrichistory( slugs, granularity) # Do the Request & test results resp = self.client.get(url) self.assertEqual(resp.status_code, 200) self.assertIn('slugs', resp.context_data) self.assertIn('granularity', resp.context_data) self.assertIn('metric_history', resp.context_data) self.assertEqual(resp.context_data['slugs'], slug_set) self.assertEqual(resp.context_data['granularity'], granularity) # Make sure our Mocked R instance had its # ``get_metric_history_as_columns`` method called with the correct # parameters c = call.get_metric_history_as_columns( slugs=slugs, granularity=granularity, since=since ) r.assert_has_calls([c])