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]))
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]) )
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()
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))
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))
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=[]))
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]))
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()
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=[]) )
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]) )
def test_default(self): indicators = get_indicator_slugs_from_config( CallCenterIndicatorConfig.default_config(), all_types=['t1', 't2'] ) self.assertEqual(len(indicators), 61)