def test_metrics_since_aggregate(self):
        """Tests the ``metrics_since`` template tag when displaying metric
        aggregate history."""

        slugs = ['test-a', 'test-b']
        years = 5
        link_type = "aggregate"
        granularity = "weekly"
        now = datetime(2014, 7, 4)

        module = 'redis_metrics.templatetags.redis_metric_tags.datetime'
        with patch(module) as mock_datetime:
            mock_datetime.utcnow.return_value = now

            result = taglib.metrics_since(slugs, years, link_type, granularity)
            self.assertIn('link_type', result.keys())
            self.assertIn('slug_values', result.keys())
            self.assertEqual(result['link_type'], link_type)

            # Verify contents of `slug_values`
            # There should be entries for each year + 5 additional periods.
            slugs = "+".join(slugs)
            expected = [
                (slugs, now - timedelta(days=1), "Today", granularity),
                (slugs, now - timedelta(days=7), "1 Week", granularity),
                (slugs, now - timedelta(days=30), "30 Days", granularity),
                (slugs, now - timedelta(days=60), "60 Days", granularity),
                (slugs, now - timedelta(days=90), "90 Days", granularity),
                (slugs, now - timedelta(days=365), "1 Years", granularity),
                (slugs, now - timedelta(days=365 * 2), "2 Years", granularity),
                (slugs, now - timedelta(days=365 * 3), "3 Years", granularity),
                (slugs, now - timedelta(days=365 * 4), "4 Years", granularity),
                (slugs, now - timedelta(days=365 * 5), "5 Years", granularity),
            ]
            self.assertEqual(expected, result['slug_values'])
Exemple #2
0
    def test_metrics_since_aggregate(self):
        """Tests the ``metrics_since`` template tag when displaying metric
        aggregate history."""

        slugs = ['test-a', 'test-b']
        years = 5
        link_type = "aggregate"
        granularity = "weekly"
        now = datetime(2014, 7, 4)

        module = 'redis_metrics.templatetags.redis_metric_tags.datetime'
        with patch(module) as mock_datetime:
            mock_datetime.utcnow.return_value = now

            result = taglib.metrics_since(slugs, years, link_type, granularity)
            self.assertIn('link_type', result.keys())
            self.assertIn('slug_values', result.keys())
            self.assertEqual(result['link_type'], link_type)

            # Verify contents of `slug_values`
            # There should be entries for each year + 5 additional periods.
            slugs = "+".join(slugs)
            expected = [
                (slugs, now - timedelta(days=1), "Today", granularity),
                (slugs, now - timedelta(days=7), "1 Week", granularity),
                (slugs, now - timedelta(days=30), "30 Days", granularity),
                (slugs, now - timedelta(days=60), "60 Days", granularity),
                (slugs, now - timedelta(days=90), "90 Days", granularity),
                (slugs, now - timedelta(days=365), "1 Years", granularity),
                (slugs, now - timedelta(days=365 * 2), "2 Years", granularity),
                (slugs, now - timedelta(days=365 * 3), "3 Years", granularity),
                (slugs, now - timedelta(days=365 * 4), "4 Years", granularity),
                (slugs, now - timedelta(days=365 * 5), "5 Years", granularity),
            ]
            self.assertEqual(expected, result['slug_values'])
    def test_metrics_since_aggregate(self):
        """Tests the ``metrics_since`` template tag when displaying metric
        aggregate history."""

        slugs = ['test-a', 'test-b']
        years = 5
        link_type = "aggregate"
        granularity = "weekly"
        t = datetime.today()

        result = taglib.metrics_since(slugs, years, link_type, granularity)
        self.assertIn('link_type', result.keys())
        self.assertIn('slug_values', result.keys())
        self.assertEqual(result['link_type'], link_type)

        # Verify contents of `slug_values`
        self.assertEqual(len(result['slug_values']), years)
        self.assertEqual(
            [s for s, d, y, g in result['slug_values']],
            ["+".join(slugs) for y in range(years)]
        )
        expected_dates = [
            (t - timedelta(days=365 * y)).strftime("%Y-%m-%d")
            for y in range(1, years + 1)
        ]
        self.assertEqual(
            [d.strftime("%Y-%m-%d") for s, d, y, g in result['slug_values']],
            expected_dates
        )
        self.assertEqual(
            [y for s, d, y, g in result['slug_values']],
            range(1, years + 1)
        )
        self.assertEqual(
            [g for s, d, y, g in result['slug_values']],
            [granularity for y in range(years)]
        )
    def test_metrics_since_history(self):
        """Tests the ``metrics_since`` template tag when displaying metric
        history."""

        slug = "test-slug"
        years = 5
        link_type = "history"
        t = datetime.today()

        result = taglib.metrics_since(slug, years, link_type)
        self.assertIn('link_type', result.keys())
        self.assertIn('slug_values', result.keys())
        self.assertEqual(result['link_type'], link_type)

        # Verify contents of `slug_values`
        self.assertEqual(len(result['slug_values']), years)
        self.assertEqual(
            [s for s, d, y, g in result['slug_values']],
            [slug for y in range(years)]
        )
        expected_dates = [
            (t - timedelta(days=365 * y)).strftime("%Y-%m-%d")
            for y in range(1, years + 1)
        ]
        self.assertEqual(
            [d.strftime("%Y-%m-%d") for s, d, y, g in result['slug_values']],
            expected_dates
        )
        self.assertEqual(
            [y for s, d, y, g in result['slug_values']],
            range(1, years + 1)
        )
        self.assertEqual(
            [g for s, d, y, g in result['slug_values']],
            ['daily' for y in range(years)]
        )