Beispiel #1
0
    def test_standard_indicators_case_dog_only(self, mock):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)
        config.forms_submitted.enabled = False

        def dog_only(conf):
            conf.totals.enabled = False
            conf.all_types = False
            conf.by_type = [
                TypedIndicator(enabled=True,
                               date_ranges={WEEK0, MONTH0},
                               type='dog')
            ]

        dog_only(config.cases_total)
        dog_only(config.cases_opened)
        dog_only(config.cases_closed)
        dog_only(config.cases_active)

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config)
        self._test_indicators(
            self.cc_user, indicator_set.get_data(),
            expected_standard_indicators(include_legacy=False,
                                         include_totals=False,
                                         case_types=['dog'],
                                         limit_ranges=[WEEK0, MONTH0]))
Beispiel #2
0
    def test_standard_indicators_case_dog_only(self):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)
        config.forms_submitted.enabled = False

        def dog_only(conf):
            conf.totals.enabled = False
            conf.all_types = False
            conf.by_type = [TypedIndicator(enabled=True, date_ranges={WEEK0, MONTH0}, type='dog')]

        dog_only(config.cases_total)
        dog_only(config.cases_opened)
        dog_only(config.cases_closed)
        dog_only(config.cases_active)

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config
        )
        self._test_indicators(
            self.cc_user,
            indicator_set.get_data(),
            expected_standard_indicators(
                include_legacy=False,
                include_totals=False,
                case_types=['dog'],
                limit_ranges=[WEEK0, MONTH0])
        )
Beispiel #3
0
    def __init__(self,
                 domain_name,
                 domain_timezone,
                 cc_case_type,
                 user,
                 custom_cache=None,
                 override_date=None,
                 override_cases=None,
                 override_cache=False,
                 indicator_config=None):
        self.domain = domain_name
        self.user = user
        self.data = defaultdict(dict)
        self.cc_case_type = cc_case_type
        self.cache = custom_cache or cache
        self.override_cases = override_cases
        self.override_cache = override_cache

        self.config = indicator_config or CallCenterIndicatorConfig.default_config(
            domain_name)

        try:
            self.timezone = pytz.timezone(domain_timezone)
        except pytz.UnknownTimeZoneError:
            self.timezone = pytz.utc

        if override_date and isinstance(override_date, datetime):
            override_date = override_date.date()

        self.reference_date = override_date or datetime.now(
            self.timezone).date()
Beispiel #4
0
    def test_standard_indicators_no_legacy(self, mock):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config)
        self._test_indicators(
            self.cc_user, indicator_set.get_data(),
            expected_standard_indicators(include_legacy=False))
Beispiel #5
0
    def test_standard_indicators_no_legacy(self):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config
        )
        self._test_indicators(
            self.cc_user,
            indicator_set.get_data(),
            expected_standard_indicators(include_legacy=False))
    def test_standard_indicators_load_config_from_db(self):
        config = CallCenterIndicatorConfig.default_config(self.cc_domain.name, include_legacy=False)
        config.save()

        self.addCleanup(config.delete)

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
        )
        self._test_indicators(
            self.cc_user,
            indicator_set.get_data(),
            expected_standard_indicators(include_legacy=False))
Beispiel #7
0
    def test_standard_indicators_case_totals_only(self, mock):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)
        config.cases_total.all_types = False
        config.cases_opened.all_types = False
        config.cases_closed.all_types = False
        config.cases_active.all_types = False

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config)
        self._test_indicators(
            self.cc_user, indicator_set.get_data(),
            expected_standard_indicators(include_legacy=False,
                                         include_totals=True,
                                         case_types=[]))
Beispiel #8
0
    def test_standard_indicators_case_week1_only(self, mock):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)
        config.forms_submitted.date_ranges = {WEEK1}
        config.cases_total.totals.date_ranges = {WEEK1}
        config.cases_opened.totals.date_ranges = {WEEK1}
        config.cases_closed.totals.date_ranges = {WEEK1}
        config.cases_active.totals.date_ranges = {WEEK1}

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config)
        self._test_indicators(
            self.cc_user, indicator_set.get_data(),
            expected_standard_indicators(include_legacy=False,
                                         include_totals=True,
                                         limit_ranges=[WEEK1]))
Beispiel #9
0
    def __init__(self, domain_name, domain_timezone, cc_case_type, user,
                 custom_cache=None, override_date=None, override_cases=None,
                 override_cache=False, indicator_config=None):
        self.domain = domain_name
        self.user = user
        self.data = defaultdict(dict)
        self.cc_case_type = cc_case_type
        self.cache = custom_cache or cache
        self.override_cases = override_cases
        self.override_cache = override_cache

        self.config = indicator_config or CallCenterIndicatorConfig.default_config(domain_name)

        try:
            self.timezone = pytz.timezone(domain_timezone)
        except pytz.UnknownTimeZoneError:
            self.timezone = pytz.utc

        if override_date and isinstance(override_date, datetime):
            override_date = override_date.date()

        self.reference_date = override_date or datetime.now(self.timezone).date()
Beispiel #10
0
    def test_standard_indicators_case_totals_only(self):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)
        config.cases_total.all_types = False
        config.cases_opened.all_types = False
        config.cases_closed.all_types = False
        config.cases_active.all_types = False

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config
        )
        self._test_indicators(
            self.cc_user,
            indicator_set.get_data(),
            expected_standard_indicators(
                include_legacy=False,
                include_totals=True,
                case_types=[])
        )
Beispiel #11
0
    def test_standard_indicators_case_week1_only(self):
        config = CallCenterIndicatorConfig.default_config(include_legacy=False)
        config.forms_submitted.date_ranges = {WEEK1}
        config.cases_total.totals.date_ranges = {WEEK1}
        config.cases_opened.totals.date_ranges = {WEEK1}
        config.cases_closed.totals.date_ranges = {WEEK1}
        config.cases_active.totals.date_ranges = {WEEK1}

        indicator_set = CallCenterIndicators(
            self.cc_domain.name,
            self.cc_domain.default_timezone,
            self.cc_domain.call_center_config.case_type,
            self.cc_user,
            custom_cache=locmem_cache,
            indicator_config=config
        )
        self._test_indicators(
            self.cc_user,
            indicator_set.get_data(),
            expected_standard_indicators(
                include_legacy=False,
                include_totals=True,
                limit_ranges=[WEEK1])
        )
Beispiel #12
0
 def test_default(self):
     indicators = get_indicator_slugs_from_config(
         CallCenterIndicatorConfig.default_config(), all_types=['t1', 't2']
     )
     self.assertEqual(len(indicators), 61)