From b1e0674c4f91c39c426a145686c1c37f57528b46 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Sun, 28 Feb 2021 12:11:50 +0100 Subject: Added all hooks tests --- minishell_test/hooks.py | 67 ++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 37 deletions(-) (limited to 'minishell_test/hooks.py') diff --git a/minishell_test/hooks.py b/minishell_test/hooks.py index 67c3f84..54963c9 100644 --- a/minishell_test/hooks.py +++ b/minishell_test/hooks.py @@ -6,7 +6,7 @@ # By: charles +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/09/11 16:10:20 by charles #+# #+# # -# Updated: 2021/02/27 20:54:14 by cacharle ### ########.fr # +# Updated: 2021/02/28 12:06:14 by cacharle ### ########.fr # # # # ############################################################################ # @@ -15,6 +15,9 @@ import re from minishell_test.config import Config +DISCARDED_TEXT = "DISCARDED BY TEST" + + def sort_lines(output): """Sort lines of output""" return '\n'.join(sorted(output.split('\n'))) @@ -23,7 +26,7 @@ def sort_lines(output): def error_line0(output): """Replace "/bin/bash: -c: line n:" by "minishell:" and delete the second line""" if not Config.check_error_messages: - return "DISCARDED BY TEST" + return DISCARDED_TEXT lines = output.split('\n') if len(lines) != 3: @@ -36,7 +39,7 @@ def error_line0(output): def discard(output): """Discard the output""" - return "DISCARDED BY TEST" + return DISCARDED_TEXT def export_singleton(output): @@ -55,7 +58,22 @@ def replace_double(s): return hook -def platform_status(darwin_status, linux_status, windows_status=None): +def error_eof_to_expected_token(output): + return output.replace( + "-c: line 1: syntax error: unexpected end of file", + "syntax error expected token" + ) + + +def should_not_be(not_expected): + def hook(output): + if output == not_expected: + return "OUTPUT SHOULD NOT BE " + output + return DISCARDED_TEXT + return hook + + +def platform_status(darwin_status, linux_status): def hook(status): if Config.platform == "darwin": return status @@ -65,45 +83,20 @@ def platform_status(darwin_status, linux_status, windows_status=None): return hook -def linux_only(func): - """ Decorator for hooks that only need to be executed on linux """ +def linux_replace(f, t): def hook(output): if not Config.platform == "linux": return output - return func(output) + return output.replace(f, t) return hook -@linux_only -def is_directory(output): - return output.replace("Is a directory", "is a directory") - - -@linux_only -def shlvl_0_to_1(output): - return output.replace("SHLVL=0", "SHLVL=1") +is_directory = linux_replace("Is a directory", "is a directory") +shlvl_0_to_1 = linux_replace("SHLVL=0", "SHLVL=1") +delete_escape = linux_replace("\\", "") -@linux_only -def delete_escape(output): - return output.replace("\\", "") - - -@linux_only def linux_discard(output): - return "DISCARDED BY MINISHELL TEST" - - -def error_eof_to_expected_token(output): - return output.replace( - "-c: line 1: syntax error: unexpected end of file", - "syntax error expected token" - ) - - -def should_not_be(not_expected): - def hook(output): - if output == not_expected: - return "OUTPUT SHOULD NOT BE " + output - return "DISCARDED BY TEST" - return hook + if not Config.platform == "linux": + return output + return DISCARDED_TEXT -- cgit