def test_with_ebcdic_file_only(self): args = self.parser.parse_args([ "extract", "-d", ".".join([TEST_EBCDIC_IPM_FILENAME, "1014block"]) ]) _main(args) with open(".".join([TEST_EBCDIC_IPM_FILENAME, "1014block"]) + ".csv", 'r') as csv_file: csv_file_lines = csv_file.readlines() print(csv_file_lines) # check there are the right number of lines # Py26 does not support getheader so will have one less line if sys.version_info[0] == 2 and sys.version_info[1] == 6: self.assertEqual(len(csv_file_lines), 5) else: self.assertEqual(len(csv_file_lines), 6) # same issue here - 2.6 has no header start_line = 1 if sys.version_info[0] == 2 and sys.version_info[1] == 6: start_line = 0 else: self.assertEqual(csv_file_lines[0], HEADER_LINE) for line in range(start_line, start_line + 5): self.assertEqual(csv_file_lines[line], DETAIL_LINE)
def run_file_both_directions(self, file_postfix, option): print("************ ASCII IN ****************") with open(".".join([TEST_ASCII_IPM_FILENAME, file_postfix]), "rb") as ascii_file: ascii_data = ascii_file.read() hexdump.hexdump(ascii_data) args = self.parser.parse_args([ "convert", "-s", "ascii", option, ".".join([TEST_ASCII_IPM_FILENAME, file_postfix]) ]) _main(args) print("************ EBCDIC IN ****************") with open(".".join([TEST_ASCII_IPM_FILENAME, file_postfix]) + ".out", "rb") as ebcdic_file: ebcdic_data = ebcdic_file.read() hexdump.hexdump(ebcdic_data) args = self.parser.parse_args([ "convert", option, ".".join([TEST_ASCII_IPM_FILENAME, file_postfix]) + ".out" ]) _main(args) with open( ".".join([TEST_ASCII_IPM_FILENAME, file_postfix]) + ".out.out", "rb") as ascii2_file: ascii2_data = ascii2_file.read() self.assertEqual(ascii2_data, ascii_data)
def test_with_ascii_file_only(self): print("************ ASCII IN ****************") with open(TEST_ASCII_IPM_FILENAME, "rb") as ascii_file: ascii_data = ascii_file.read() hexdump.hexdump(ascii_data) args = self.parser.parse_args(["convert", "-s", "ascii", TEST_ASCII_IPM_FILENAME]) _main(args) # Convert file with DE55 in it args = self.parser.parse_args(["convert", "-s", "ascii", "build/test/test_ascii_de55_ipm.in"]) _main(args) print("************ EBCDIC IN ****************") with open(TEST_ASCII_IPM_FILENAME + ".out", "rb") as ebcdic_file: ebcdic_data = ebcdic_file.read() hexdump.hexdump(ebcdic_data) args = self.parser.parse_args(["convert", TEST_ASCII_IPM_FILENAME + ".out"]) _main(args) with open(TEST_ASCII_IPM_FILENAME + ".out.out", "rb") as ascii2_file: ascii2_data = ascii2_file.read() self.assertEqual(ascii2_data, ascii_data)
def test_with_ascii_file_only(self): print("************ ASCII IN ****************") with open(TEST_ASCII_IPM_FILENAME, "rb") as ascii_file: ascii_data = ascii_file.read() hexdump.hexdump(ascii_data) args = self.parser.parse_args( ["convert", "-s", "ascii", TEST_ASCII_IPM_FILENAME]) _main(args) # Convert file with DE55 in it args = self.parser.parse_args( ["convert", "-s", "ascii", "build/test/test_ascii_de55_ipm.in"]) _main(args) print("************ EBCDIC IN ****************") with open(TEST_ASCII_IPM_FILENAME + ".out", "rb") as ebcdic_file: ebcdic_data = ebcdic_file.read() hexdump.hexdump(ebcdic_data) args = self.parser.parse_args( ["convert", TEST_ASCII_IPM_FILENAME + ".out"]) _main(args) with open(TEST_ASCII_IPM_FILENAME + ".out.out", "rb") as ascii2_file: ascii2_data = ascii2_file.read() self.assertEqual(ascii2_data, ascii_data)
def test_with_ebcdic_file_only(self): args = self.parser.parse_args(["extract", "-d", TEST_EBCDIC_IPM_FILENAME]) _main(args) with open(TEST_EBCDIC_IPM_FILENAME + ".csv", "r") as csv_file: csv_file_lines = csv_file.readlines() print(csv_file_lines) # check there are the right number of lines # Py26 does not support getheader so will have one less line if sys.version_info[0] == 2 and sys.version_info[1] == 6: self.assertEqual(len(csv_file_lines), 5) else: self.assertEqual(len(csv_file_lines), 6) # same issue here - 2.6 has no header start_line = 1 if sys.version_info[0] == 2 and sys.version_info[1] == 6: start_line = 0 else: self.assertEqual(csv_file_lines[0], HEADER_LINE) for line in range(start_line, start_line + 5): self.assertEqual(csv_file_lines[line], DETAIL_LINE)
def test_with_bad_filename(self): test_file = 'abc.txt' args = self.parser.parse_args(["extract", test_file]) self.assertRaises(SystemExit, lambda: _main(args))
def test_enter_with_no_subcommand(self): """ try calling standard entry without sub command.. should return help text :return: """ _main(None)
def test_de55_file(self): # Convert file with DE55 in it args = self.parser.parse_args( ["convert", "-s", "ascii", "build/test/test_ascii_de55_ipm.in"]) _main(args)
def test_with_bad_ascii_file(self): args = self.parser.parse_args( ["extract", "-s", "ascii", "build/test/test_bad_ascii_ipm.in"]) self.assertRaises(Exception, lambda: _main(args))
def test_with_ascii_de55_values(self): args = self.parser.parse_args( ["extract", "-s", "ascii", "build/test/test_ascii_de55_ipm.in"]) _main(args)
def test_with_bad_filename(self): test_file = "abc.txt" args = self.parser.parse_args(["extract", test_file]) self.assertRaises(SystemExit, lambda: _main(args))
def test_with_ascii_de55_values(self): args = self.parser.parse_args(["extract", "-s", "ascii", "build/test/test_ascii_de55_ipm.in"]) _main(args)