Ejemplo n.º 1
0
    def run_case_with_parameters(self,
                                 case_num,
                                 specific_params=None,
                                 special_case=None):
        """Run a test case with parameters using ParameterDiscovery strategy.

        Args:
            case_num (int): The test case number to run.
        """
        test_wb = load_original_case(case_num)
        params = load_parameters_case(case_num)
        params["data_ends"] = None
        exp_dfs = load_expected_case(case_num, special_case)

        if specific_params:
            for specific_param, value in specific_params.items():
                params[specific_param] = value

        # get dfs from the strategy
        series = XlSeries(test_wb)
        test_dfs = series.get_data_frames(params)

        if type(test_dfs) != list:
            test_dfs = [test_dfs]
        if type(exp_dfs) != list:
            exp_dfs = [exp_dfs]

        for test_df, exp_df in zip(test_dfs, exp_dfs):
            print(test_df.columns, exp_df.columns)
            self.assertTrue(compare_data_frames(test_df, exp_df))
Ejemplo n.º 2
0
    def run_case_without_some_parameters(self,
                                         case_num,
                                         specific_params=None,
                                         special_case=None):
        """Run a test case deleting some parameters.

        Args:
            case_num: The test case number to run.
        """
        test_wb = get_orig_cases_path(case_num)
        params = load_parameters_case(case_num)
        exp_dfs = load_expected_case(case_num, special_case)

        params.remove_non_critical()
        if specific_params:
            for specific_param, value in specific_params.items():
                params[specific_param] = value

        # change safe_mode to True, for complete test in safe_mode (very slow)
        safe_mode = False
        series = XlSeries(test_wb)
        test_dfs = series.get_data_frames(params, safe_mode=safe_mode)

        # get them always into a list
        if type(test_dfs) != list:
            test_dfs = [test_dfs]
        if type(exp_dfs) != list:
            exp_dfs = [exp_dfs]

        for test_df, exp_df in zip(test_dfs, exp_dfs):
            self.assertTrue(compare_data_frames(test_df, exp_df))
Ejemplo n.º 3
0
    def test_parse_time_case2_normal_behaviour(self):
        params = load_parameters_case(2)

        last_time = arrow.get(2009, 12, 16)
        exp_value = arrow.get(2009, 12, 17)
        next_value = "18-12-09"

        self.run_pt(params[0], exp_value, "17-12.09", last_time, next_value)
        self.run_pt(params[0], exp_value, "12-17.09", last_time, next_value)
        self.run_pt(params[0], exp_value, "17-12.2009", last_time, next_value)
        self.run_pt(params[0], exp_value, "12-17.2009", last_time, next_value)
        self.run_pt(params[0], exp_value, "2009.12.17", last_time, next_value)

        self.run_pt(params[0], exp_value, "17-12.09", None, next_value)
        self.run_pt(params[0], exp_value, "12-17.09", None, next_value)
        self.run_pt(params[0], exp_value, "17-12.2009", None, next_value)
        self.run_pt(params[0], exp_value, "12-17.2009", None, next_value)
        self.run_pt(params[0], exp_value, "2009.12.17", None, next_value)

        self.run_pt(params[0], exp_value, "17-12.09", last_time, None)
        self.run_pt(params[0], exp_value, "12-17.09", last_time, None)
        self.run_pt(params[0], exp_value, "17-12.2009", last_time, None)
        self.run_pt(params[0], exp_value, "12-17.2009", last_time, None)
        self.run_pt(params[0], exp_value, "2009.12.17", last_time, None)

        exp_value = arrow.get(2010, 3, 2)
        last_time = arrow.get(2010, 3, 1)
        next_value = arrow.get(2010, 3, 3)
        self.run_pt(params[0], exp_value, "02.03.10", last_time, next_value)
Ejemplo n.º 4
0
    def test_parse_time(self):

        value = "17-12.09"
        last_time = arrow.get(2009, 12, 16)

        params = load_parameters_case(2)
        # print repr(params[0])

        new_time_value = CleanSingleColumn()._parse_time(params[0], value,
                                                         last_time)

        exp_time_value = arrow.get(2009, 12, 17)

        self.assertEqual(new_time_value, exp_time_value)
Ejemplo n.º 5
0
    def test_get_period_ranges(self):

        test_wb = load_original_case(2)
        params = load_parameters_case(2)
        strategy_obj = ParameterDiscovery(test_wb, params)
        ws = strategy_obj.wb.active

        pr_d = pd.date_range("20020304", "20140410", freq="D")
        pr_m = pd.date_range("20020301", "20140301", freq="MS")

        period_ranges = list(strategy_obj._get_period_ranges(ws, params))

        self.assertTrue(compare_period_ranges(pr_d, period_ranges[0]))
        self.assertTrue(compare_period_ranges(pr_m, period_ranges[1]))
Ejemplo n.º 6
0
    def test_parse_time_case2_exceptions(self):
        params = load_parameters_case(2)

        last_time = arrow.get(2009, 12, 16)
        next_value = "18-12-09"

        with patch.object(ParseSimpleTime,
                          "_get_possible_time_formats",
                          return_value=["YY-MM-DD"]):
            value = "12-17.09"
            self.assertRaises(NoTimeValue,
                              ParseSimpleTime()._parse_time, params[0], value,
                              last_time, next_value)

        with patch.object(ParseSimpleTime,
                          "_get_possible_time_formats",
                          return_value=["MM-DD-YY"]):
            value = "17-12.09"
            self.assertRaises(NoTimeValue,
                              ParseSimpleTime()._parse_time, params[0], value,
                              last_time, next_value)
Ejemplo n.º 7
0
    def test_time_make_sense(self):

        params = load_parameters_case(2)
        time_value = arrow.get(2017, 12, 9)
        last_time = arrow.get(2009, 12, 16)
        next_value = "18-12-09"

        make_sense = ParseSimpleTime()._time_make_sense(
            params[0], time_value, last_time, next_value)
        self.assertFalse(make_sense)

        make_sense = ParseSimpleTime()._time_make_sense(
            params[0], time_value, None, next_value)
        self.assertFalse(make_sense)

        time_value = arrow.get(2002, 3, 10)
        last_time = arrow.get(2010, 3, 1)

        make_sense = ParseSimpleTime()._time_make_sense(
            params[0], time_value, last_time, next_value)
        self.assertFalse(make_sense)

        time_value = arrow.get(2010, 2, 3)
        last_time = arrow.get(2010, 3, 1)
        next_value = arrow.get(2010, 3, 3)

        make_sense = ParseSimpleTime()._time_make_sense(
            params[0], time_value, last_time, next_value)
        self.assertFalse(make_sense)

        time_value = arrow.get(2010, 3, 2)
        last_time = arrow.get(2010, 3, 1)
        next_value = arrow.get(2010, 3, 3)

        make_sense = ParseSimpleTime()._time_make_sense(
            params[0], time_value, last_time, next_value)
        self.assertTrue(make_sense)
Ejemplo n.º 8
0
        if not external:
            case = "test_case" + str(case_num)
        else:
            case = "external_case" + str(case_num)

        with open(os.path.join(abs_path("original"), "parse_time.json")) as f:
            values = json.load(f)[case]

        with open(os.path.join(abs_path("expected"), "parse_time.json")) as f:
            exp_vals = json.load(f)[case]
            exp_vals = [eval(value) for value in exp_vals]

        rule = re.compile("(\d)")
        case_num_int = int(rule.match(case_num).group())
        if external:
            params = load_parameters_case(1)
        else:
            params = load_parameters_case(case_num_int)

        new_values = self.parse_time_values(strategy, values, params)

        msg = " ".join([
            str(case), ":",
            str(new_values), "are not equal to",
            str(exp_vals)
        ])
        self.assertEqual(new_values, exp_vals, msg)

    @load_case_number()
    # @unittest.skip("skip")
    def test_parse_time_case3(self, case_num):