import file_utils_operations_lib import unittest import os # Variables from custom_files import path, custom_path, custom_path_delim, path_delim, delimiter, create_delim_test_file, headers # Functions from custom_files import create_regex_test_file, get_list class TestWithCustomDelimHead(unittest.TestCase): def test_head_n_10_valid_remove_empty_string_false(self): n: int = 10 file = os.popen("head " + path + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter), ref) def test_head_n_0_valid_remove_empty_string_false(self): n: int = 0 file = os.popen("head " + path + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter), ref) def test_head_n_1_valid_remove_empty_string_false(self): n: int = 1 file = os.popen("head " + path + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter), ref) def test_head_n_neg_invalid_remove_empty_string_false(self): check_pass: bool = True try: file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter) except: check_pass = False if check_pass: self.fail("[head] Negative value shouldn't work") ## def test_custom_path_head_n_10_valid_remove_empty_string_false(self): n: int = 10 file = os.popen("head " + custom_path + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter), ref) def test_custom_path_head_n_0_valid_remove_empty_string_false(self): n: int = 0 file = os.popen("head " + custom_path + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter), ref) def test_custom_path_head_n_1_valid_remove_empty_string_false(self): n: int = 1 file = os.popen("head " + custom_path + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter), ref) def test_custom_path_head_n_neg_invalid_remove_empty_string_false(self): check_pass: bool = True try: file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n) except: check_pass = False if check_pass: self.fail("[head] Negative value shouldn't work") ## Test empty lines ---------- def test_head_n_10_valid_remove_empty_string_true(self): n: int = 10 file = os.popen("sed '/^$/d' " + path + " | head " + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter, remove_empty_string=True, restrict=False), ref) def test_head_n_0_valid_remove_empty_string_true(self): n: int = 0 file = os.popen("sed '/^$/d' " + path + " | head " + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter, remove_empty_string=True), ref) def test_head_n_1_valid_remove_empty_string_true(self): n: int = 1 file = os.popen("sed '/^$/d' " + path + " | head " + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter, remove_empty_string=True), ref) def test_head_n_neg_invalid_remove_empty_string_true(self): check_pass: bool = True try: file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter, remove_empty_string=True) except: check_pass = False if check_pass: self.fail("[head] Negative value shouldn't work") ## def test_custom_path_head_n_10_valid_remove_empty_string_true(self): n: int = 10 file = os.popen("sed '/^$/d' " + custom_path + " | head " + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter, remove_empty_string=True), ref) def test_custom_path_head_n_0_valid_remove_empty_string_true(self): n: int = 0 file = os.popen("sed '/^$/d' " + custom_path + " | head " + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter, remove_empty_string=True), ref) def test_custom_path_head_n_1_valid_remove_empty_string_true(self): n: int = 1 file = os.popen("sed '/^$/d' " + custom_path + " | head " + " -n " + str(n)) res: str= file.read() file.close() ref: list = get_list(res) self.assertEqual(file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter, remove_empty_string=True), ref) def test_custom_path_head_n_neg_invalid_remove_empty_string_true(self): check_pass: bool = True try: file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter, remove_empty_string=True) except: check_pass = False if check_pass: self.fail("[head] Negative value shouldn't work") ## Test regex def test_head_n_valid_invalid_remove_empty_string_false_keep_when_regex_valid_pass_when_regex_valid_regex_invalid(self): check_pass: bool = True try: file_utils_operations_lib.WithCustomDelims.head(path=path_delim, n=n, delimiter=delimiter, remove_empty_string=True, regex_keep=1) except: check_pass = False if check_pass: self.fail("[head] Non bool value shouldn't work") def test_head_n_10_invalid_remove_empty_string_false_keep_when_regex_valid_pass_when_regex_valid_regex_Warning(self): n: int = 10 global headers result_to_test: list = file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter, regex_keep=["\[Warning\]:.*"], restrict=True) self.assertEqual(len(result_to_test), n // len(headers) + 1) def test_head_n_10_invalid_remove_empty_string_false_keep_when_regex_valid_pass_when_regex_valid_regex_Info(self): n: int = 10 global headers result_to_test: list = file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter, regex_keep=["\[Info\]:.*"], restrict=True) self.assertEqual(len(result_to_test), n // len(headers)) def test_head_n_10_invalid_remove_empty_string_false_keep_when_regex_valid_pass_when_regex_valid_regex_Error(self): n: int = 10 global headers result_to_test: list = file_utils_operations_lib.WithCustomDelims.head(path=custom_path_delim, n=n, delimiter=delimiter, regex_keep=["\[Error\]:.*"], restrict=True) self.assertEqual(len(result_to_test), n // len(headers)) if __name__ == '__main__': create_delim_test_file(path, path_delim) create_regex_test_file(custom_path) create_delim_test_file(custom_path, custom_path_delim) unittest.main()