def test_clean_time_index_case5b(self): wb = load_workbook( os.path.join(abs_path("original"), "test_case5b.xlsx")) ws = wb.active params = {"alignment": "vertical", "time_alignment": 0, "time_format": str, "time_header_coord": ["A18", "B18"], "data_starts": 28, "data_ends": 993, "frequency": "M", "missings": True, "missing_value": None, "time_multicolumn": True, "continuity": False, "time_composed": True} CleanMultipleColumns()._clean_time_index(ws, params) wb_exp = load_workbook( os.path.join(abs_path("expected"), "test_case5.xlsx")) # wb.save("test_case5b_after_cleaning_index.xlsx") self.assertTrue(compare_cells(wb, wb_exp))
def test_clean_time_index_case6_without_end(self): wb = load_workbook( os.path.join(abs_path("original"), "test_case6.xlsx")) ws = wb.active params = {"alignment": "horizontal", "blank_rows": True, "composed_headers": True, "data_starts": 3, "data_ends": None, "frequency": "AQQQQ", "headers_coord": "B8-B28", "continuity": False, "missings": False, "missing_value": None, "multifrequency": True, "series_names": None, "time_composed": True, "time_alignment": 0, "time_multicolumn": True, "time_format": str, "time_header": True, "time_header_coord": ["C4", "C6"]} end = CleanMultiColumnsMultiFreq().clean_time_index(ws, params) wb_exp = load_workbook( os.path.join(abs_path("expected"), "test_case6.xlsx"), data_only=True) # wb.save("test_case6_after_cleaning_index.xlsx") self.assertTrue(compare_cells(wb, wb_exp)) self.assertEqual(end, 61)
def test_clean_time_index_case7(self): wb = load_workbook( os.path.join(abs_path("original"), "test_case7.xlsx")) ws = wb.active params = {"alignment": "horizontal", "blank_rows": True, "composed_headers": False, "data_starts": 2, "data_ends": 44, "frequency": "A", "continuity": False, "missings": False, "missing_value": "None", "multifrequency": False, "series_names": "None", "time_composed": True, "time_alignment": 0, "time_multicolumn": False, "time_format": int, "time_header": False, "time_header_coord": "A6"} CleanSingleColumn().clean_time_index(ws, params) wb_exp = load_workbook( os.path.join(abs_path("expected"), "test_case7.xlsx"), data_only=True) # wb.save("test_case5_after_cleaning_index.xlsx") self.assertTrue(compare_cells(wb, wb_exp))
def test_clean_time_index_case5_without_end(self): wb = load_workbook( os.path.join(abs_path("original"), "test_case5.xlsx")) ws = wb.active params = {"alignment": "vertical", "time_alignment": 0, "time_format": str, "continuity": False, "blank_rows": True, "time_header_coord": "A18", "data_starts": 28, "data_ends": None, "frequency": "M", "missings": True, "missing_value": None, "time_multicolumn": False, "time_composed": True} end = CleanSingleColumn().clean_time_index(ws, params) wb_exp = load_workbook( os.path.join(abs_path("expected"), "test_case5_without_end.xlsx")) # wb.save("test_case5_after_cleaning_index.xlsx") self.assertTrue(compare_cells(wb, wb_exp)) self.assertEqual(end, 1001)
def test_clean_time_index_case2(self): wb = load_workbook( os.path.join(abs_path("original"), "test_case2.xlsx")) ws = wb.active params = {"alignment": "vertical", "time_alignment": 0, "time_format": datetime.datetime, "continuity": True, "blank_rows": True, "time_header_coord": "C4", "data_starts": 5, "data_ends": 2993, "frequency": "D", "missings": True, "missing_value": "Implicit", "time_multicolumn": False, "time_composed": False} CleanSingleColumn().clean_time_index(ws, params) wb_exp = load_workbook( os.path.join(abs_path("expected"), "test_case2.xlsx")) # wb.save("test_case2_after_cleaning_index.xlsx") self.assertTrue(compare_cells(wb, wb_exp))
def test_open_xls_as_xlsx(self): wb_xls = open_xls_as_xlsx(abs_path("sh_ipcnu.xls")) wb_exp = load_workbook(os.path.join(abs_path("expected"), "sh_ipcnu.xlsx"), data_only=True) self.assertTrue(compare_cells(wb_xls, wb_exp))
return new_values def run_parse_time_case(self, case_num, strategy, external=False): """Run a parse time test case using provided strategy. Args: case_num: Number of case to load. strategy: Strategy to parse the case. """ 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)