def set_up(self):
        super(TestPngjpSanityPerKPI, self).set_up()
        # mock parse_template to return the expected DFs
        self.get_template_path_mock = MagicMock(
            'parse_template',
            path='Projects.PNGJP.Utils.ParseTemplates',
            side_effect=[
                pd.DataFrame(parse_template_data.template_data),
                pd.DataFrame(parse_template_data.innovation_assortment),
                pd.DataFrame(parse_template_data.psku_assortment),
                pd.DataFrame(parse_template_data.scene_types),
                pd.DataFrame(parse_template_data.golden_zone_data_criteria)
            ])
        # get expected results data
        self.test_results_against = pd.DataFrame(
            expected_results_from_db.expected_results)
        self.kpi_expected_results_df = self.test_results_against[
            ~self.test_results_against['sum_result'].isnull()]

        # load seed data
        self.save_kpi_results_in_seed()

        # get actual results from seed
        self.kpi_actual_results_df = self.get_kpi_actual_results_from_seed()

        # mock template
        remove_cache_and_storage()
Exemple #2
0
    def set_up(self):
        super(TestPngcn, self).set_up()
        remove_cache_and_storage()
        # mock PSProjectConnector
        self.ProjectConnector_mock = self.mock_object(
            'ProjectConnector', path='KPIUtils_v2.DB.PsProjectConnector')

        self.ProjectConnector_mock = self.mock_object(
            'get_png_manufacturer_fk', path='Projects.PNGCN_PROD.SceneKpis.KPISceneToolBox.PngcnSceneKpis')
        self.ProjectConnector_mock.return_value = 4

        self.matches_mock = self.mock_object(
            'get_match_product_in_scene', path='Projects.PNGCN_PROD.KPIToolBox.PNGToolBox')

        self.PSProjectConnector = self.mock_object('PSProjectConnector',
                                                   path='KPIUtils_v2.DB.PsProjectConnector')

        self.block = self.mock_object('Block')

        # mock 'Common' object used in toolbox
        self.common_mock = self.mock_object(
            'Common.get_kpi_fk_by_kpi_name', path='KPIUtils_v2.DB.CommonV2')
        self.SessionInfo_mock = self.mock_object(
            'SessionInfo', path='Trax.Algo.Calculations.Core.Shortcuts')
        self.common_mock.return_value = 3

        # get the relevant DFs
        matches = pd.DataFrame(r.matches)
        scif = pd.DataFrame(r.scif)
        all_products = pd.DataFrame(r.all_products)
        products = pd.DataFrame(r.all_products)
        session_info = pd.DataFrame(r.session_info)

        # create a dict of data_provider object relevant attributes
        my_dict = {'matches': matches,
                   'scene_item_facts': scif,
                   'all_products': all_products,
                   'products': products,
                   'session_info': session_info,
                   'store_fk': session_info['store_fk'].iloc[0],
                   'visit_date': session_info['visit_date'].iloc[0],
                   'session_and_store_info': pd.DataFrame({'values': [4, 67, 8, 2]}),
                   'templates': pd.DataFrame([{'template_fk': None}])}

        # decode manufacturer_name (to work around get_png_manufacturer_fk method)
        my_dict['all_products']['manufacturer_name'] = my_dict['all_products']['manufacturer_name'].str.decode(
            'utf8')

        # mock 'data provider' object giving to the toolbox
        self.data_provider_mock = MagicMock()
        self.output_mock = MagicMock()

        # making data_provider_mock behave like a dict
        self.data_provider_mock.__getitem__.side_effect = my_dict.__getitem__
        self.data_provider_mock.__iter__.side_effect = my_dict.__iter__

        self.psdataprovider = self.mock_object('PsDataProvider',
                                               path='Projects.PNGCN_PROD.SceneKpis.KPISceneToolBox')
        self.psdataprovider.get_kpi_external_targets.return_value = pd.DataFrame([{'template_fk': [144, 145]}])
 def set_up(self):
     super(TestDiageotw, self).set_up()
     self.project_name = ProjectsSanityData.project_name
     self.output = Output()
     self.mock_object('save_latest_templates',
                      path='KPIUtils.DIAGEO.ToolBox.DIAGEOToolBox')
     self.session_uid = 'B1F11D51-DC00-4FDB-86E4-B389530C66DB'
     remove_cache_and_storage()
 def set_up(self):
     super(TestKEngineOutOfTheBox, self).set_up()
     self.mock_object('save_latest_templates',
                      path='KPIUtils.DIAGEO.ToolBox.DIAGEOToolBox')
     self.mock_object(
         'save_level2_and_level3',
         path='Projects.PENAFLORAR.Utils.KPIToolBox.PENAFLORARToolBox')
     remove_cache_and_storage()
    def set_up(self):
        super(TestCCCBR, self).set_up()
        remove_cache_and_storage()

        # mock PSProjectConnector
        self.CCBRGENERALToolBox_mock = self.mock_object(
            'CCBRGENERALToolBox',
            path='Projects.CCBR_PROD.Utils.GeneralToolBox')
        self.SessionInfo_mock = self.mock_object(
            'SessionInfo', path='Trax.Algo.Calculations.Core.Shortcuts')
        self.BaseCalculationsGroup_mock = self.mock_object(
            'BaseCalculationsGroup',
            path='Trax.Algo.Calculations.Core.Shortcuts')
        self.ProjectConnector_mock = self.mock_object(
            'Common', path='KPIUtils.DB.Common')
        self.ProjectConnector_mock = self.mock_object(
            'PSProjectConnector', path='KPIUtils_v2.DB.PsProjectConnector')
        self.PsDataProvider_mock = self.mock_object(
            'PsDataProvider',
            path='KPIUtils_v2.GlobalDataProvider.PsDataProvider')
        self.load_exel_to_df_mock = self.mock_object(
            'load_exel_to_df',
            path='Projects.CCBR_PROD.Utils.KPIToolBox.CCBRToolBox')

        get_kpi_fk_by_kpi_name_new_tables = self.mock_object(
            'Common.get_kpi_fk_by_kpi_name_new_tables')
        get_kpi_fk_by_kpi_name_new_tables.side_effect = self.survey_response_mock

        # send templates as DFs
        self.load_exel_to_df_mock.side_effect = [
            pd.DataFrame(records.count_sheet),
            pd.DataFrame(records.group_count_sheet),
            pd.DataFrame(records.survey_sheet)
        ]

        # mock 'data provider' and object
        self.data_provider_mock = MagicMock()
        self.output_mock = MagicMock()

        # create a dict of data_provider object relevant attributes
        self.my_dict = {
            'all_products': pd.DataFrame(records.all_products),
            'store_info': pd.DataFrame(records.store_info),
            'scene_item_facts': pd.DataFrame(records.scif),
            'products': pd.DataFrame(records.products),
            'session_info': pd.DataFrame(records.session_info),
            'survey_responses': pd.DataFrame(records.survey_responses),
            'visit_date': datetime.date(2018, 6, 11),
            'scenes_info': pd.DataFrame({'template_fk': [3, 5, 6]}),
            'all_templates': pd.DataFrame({'template_fk': [3, 5, 6]}),
            'session_and_store_info': pd.DataFrame({'col1': [3, 5, 6]}),
            'store_fk': 232,
            'active_products': pd.DataFrame(records.active_products)
        }
        # making data_provider_mock behave like a dict
        self.data_provider_mock.__getitem__.side_effect = self.my_dict.__getitem__
        self.data_provider_mock.__iter__.side_effect = self.my_dict.__iter__
        self.tool_box = CCBRToolBox(self.data_provider_mock, self.output_mock)
Exemple #6
0
 def set_up(self):
     super(TestKEngineOutOfTheBox, self).set_up()
     self.mock_object(
         'save_latest_templates',
         path=
         'KPIUtils.GlobalProjects.DIAGEO.Utils.TemplatesUtil.TemplateHandler'
     )
     self.mock_object(
         'download_template',
         path=
         'KPIUtils.GlobalProjects.DIAGEO.Utils.TemplatesUtil.TemplateHandler'
     )
     remove_cache_and_storage()
Exemple #7
0
 def set_up(self):
     super(TestCcus, self).set_up()
     remove_cache_and_storage()
     self.project_name = ProjectsSanityData.project_name
     self.session_uid = '8395fc95-465b-47c2-ad65-6d10de13cd75'
 def set_up(self):
     super(TestKEngineOutOfTheBox, self).set_up()
     remove_cache_and_storage()
Exemple #9
0
 def set_up(self):
     super(PsSanityTestsFuncs, self).set_up()
     remove_cache_and_storage()
     self.user = os.environ.get('USER')
Exemple #10
0
 def set_up(self):
     super(TestKEngineOutOfTheBox, self).set_up()
     from Tests.TestUtils import remove_cache_and_storage
     remove_cache_and_storage()
Exemple #11
0
 def set_up(self):
     super(TestKEngineOutOfTheBox, self).set_up()
     remove_cache_and_storage()
     self.mock_object(object_name='commit_results_data',
                      path='KPIUtils_v2.DB.CommonV2.Common')
 def set_up(self):
     super(TestDiageopt, self).set_up()
     self.project_name = ProjectsSanityData.project_name
     self.output = Output()
     self.session_uid = '963D013D-EEB6-48DF-B8EC-06C8E0C2AA6C'
     remove_cache_and_storage()