def __init__(self, command_str, quiet=False): self.command_tokens = CommandStrategy.tokenize(command_str) redirection_tuple = \ CommandStrategy.find_redirection_file_path(self.command_tokens) if redirection_tuple is not None: self.remove_redirection_tokens() (redirection_type, redirection_filepath) = redirection_tuple self.print_wrapper = TerminalWriter(redirection_type, redirection_filepath) elif quiet: self.print_wrapper = \ TerminalWriter(redirection_type=RedirectionType.quiet) else: self.print_wrapper = TerminalWriter(None) self._is_regex_global = None
def test(self): obj = TerminalWriter() assert obj.redirection_file_path is None assert obj.buffered_text is None assert obj._file_mode == 'a+' obj = TerminalWriter(RedirectionType.append) assert obj.redirection_file_path is None assert obj.buffered_text is None assert obj._file_mode == 'a+' obj = TerminalWriter(RedirectionType.truncate) assert obj.redirection_file_path is None assert obj.buffered_text is None assert obj._file_mode == 'w+' obj = TerminalWriter(RedirectionType.quiet) assert obj.redirection_file_path is None assert obj.buffered_text is None assert obj._file_mode == 'quiet' obj = TerminalWriter(None) assert obj.redirection_file_path is None assert obj.buffered_text is None assert obj._file_mode is None obj = TerminalWriter(redirection_file_path="test") assert obj.redirection_file_path == "test" assert obj.buffered_text is None assert obj._file_mode == 'a+'
def test(self): obj = TerminalWriter() assert obj.get_redirection() == (RedirectionType.append, None) obj = TerminalWriter(RedirectionType.append) assert obj.get_redirection() == (RedirectionType.append, None) obj = TerminalWriter(RedirectionType.truncate) assert obj.get_redirection() == (RedirectionType.truncate, None) obj = TerminalWriter(RedirectionType.quiet) assert obj.get_redirection() == (RedirectionType.quiet, None) obj = TerminalWriter(None) assert obj.get_redirection() is None obj = TerminalWriter(redirection_file_path="test") assert obj.get_redirection() == (RedirectionType.append, "test")
def test_print(self, capsys): obj = TerminalWriter(None) obj.error_log("this is a test") captured = capsys.readouterr() assert captured.out == "[ERROR]\tthis is a test\n" assert obj.buffered_text is None
def test_not_quiet(self): obj = TerminalWriter(RedirectionType.append) obj.write("something") assert obj.buffered_text == "something" obj.write("other line") assert obj.buffered_text == "something\nother line"
def test_quiet(self): obj = TerminalWriter(RedirectionType.quiet) obj.write("something") assert obj.buffered_text is None
def test_incorrect_state(self): obj = TerminalWriter() obj._file_mode = "incorrect" assert obj.get_redirection() is None
def test(self): obj = TerminalWriter(redirection_file_path="test") obj.reset() assert obj.redirection_file_path is None assert obj.buffered_text is None
def test_not_quiet(self): obj = TerminalWriter(RedirectionType.append) obj.error_log("something") assert obj.buffered_text == "[ERROR]\tsomething" obj.error_log("other line") assert obj.buffered_text == "[ERROR]\tsomething\n[ERROR]\tother line"