def test_terminal_dimensions(self): application = Application() original_dimensions = application.get_terminal_dimensions(StreamOutput(sys.stdout)) self.assertEqual(2, len(original_dimensions)) width = 80 if original_dimensions[0] == width: width = 100 application.set_terminal_dimensions(width, 80) self.assertEqual((width, 80), application.get_terminal_dimensions(StreamOutput(sys.stdout)))
def run(self, input_, options=None): options = options or {} self._input = ListInput(input_) if self._inputs: self._input.set_stream(self._create_stream(self._inputs)) if "interactive" in options: self._input.set_interactive(options["interactive"]) self._output = StreamOutput(io.BytesIO()) if "decorated" in options: self._output.set_decorated(options["decorated"]) else: self._output.set_decorated(False) if "verbosity" in options: self._output.set_verbosity(options["verbosity"]) return self._application.run(self._input, self._output)
def test_do_write_non_ascii(self): output = StreamOutput(self.stream) output.writeln('féàù—') output.get_stream().seek(0) self.assertEqual(u'féàù—\n', output.get_stream().read().decode('utf-8'))
def test_do_write(self): output = StreamOutput(self.stream) output.writeln('foo') output.get_stream().seek(0) self.assertEqual('foo\n', output.get_stream().read().decode('utf-8'))
def test_get_stream(self): output = StreamOutput(self.stream) self.assertEqual(self.stream, output.get_stream())
def test_init(self): output = StreamOutput(self.stream, Output.VERBOSITY_QUIET, True) self.assertEqual(Output.VERBOSITY_QUIET, output.get_verbosity()) self.assertTrue(output.is_decorated())