aboutsummaryrefslogtreecommitdiff
# -*- coding: utf-8 -*-
import json
from sendgrid.helpers.stats import *

try:
    import unittest2 as unittest
except ImportError:
    import unittest


class UnitTests(unittest.TestCase):

    def test_basicStats(self):

        """Minimum required for stats"""
        global_stats = Stats(start_date='12-09-2017')

        self.assertEqual(
            json.dumps(
                global_stats.get(),
                sort_keys=True),
            '{"start_date": "12-09-2017"}'
        )

        self.assertTrue(isinstance(str(global_stats), str))

    def test_Stats(self):

        all_stats = Stats(start_date='12-09-2017')
        all_stats.end_date = '12-10-2017'
        all_stats.aggregated_by = 'day'
        all_stats._sort_by_direction = 'asc'
        all_stats.sort_by_metric = 'clicks'
        all_stats._limit = 100
        all_stats._offset = 2

        self.assertEqual(
            json.dumps(
                all_stats.get(),
                sort_keys=True),
            '{"aggregated_by": "day", "end_date": "12-10-2017", '
            '"limit": 100, "offset": 2, "sort_by_direction": "asc", '
            '"sort_by_metric": "clicks", "start_date": "12-09-2017"}'
        )

    def test_categoryStats(self):

        category_stats = CategoryStats(start_date='12-09-2017', categories=['foo', 'bar'])
        category_stats.add_category(Category('woo'))
        category_stats.end_date = '12-10-2017'
        category_stats.aggregated_by = 'day'
        category_stats._sort_by_direction = 'asc'
        category_stats.sort_by_metric = 'clicks'
        category_stats._limit = 100
        category_stats._offset = 2

        self.assertEqual(
            json.dumps(
                category_stats.get(),
                sort_keys=True),
            '{"aggregated_by": "day", "categories": ["foo", "bar", "woo"], '
            '"end_date": "12-10-2017", "limit": 100, "offset": 2, '
            '"sort_by_direction": "asc", "sort_by_metric": "clicks", '
            '"start_date": "12-09-2017"}'
        )

    def test_subuserStats(self):

        subuser_stats = SubuserStats(start_date = '12-09-2017', subusers=['foo', 'bar'])
        subuser_stats.add_subuser(Subuser('blah'))
        subuser_stats.end_date = '12-10-2017'
        subuser_stats.aggregated_by = 'day'
        subuser_stats._sort_by_direction = 'asc'
        subuser_stats.sort_by_metric = 'clicks'
        subuser_stats._limit = 100
        subuser_stats._offset = 2

        self.assertEqual(
            json.dumps(
                subuser_stats.get(),
                sort_keys=True),
            '{"aggregated_by": "day", "end_date": "12-10-2017", '
            '"limit": 100, "offset": 2, "sort_by_direction": "asc", '
            '"sort_by_metric": "clicks", "start_date": "12-09-2017", '
            '"subusers": ["foo", "bar", "blah"]}'
        )