test_coalescestreams.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. """Tests for the coalescestreams preprocessor"""
  2. # Copyright (c) IPython Development Team.
  3. # Distributed under the terms of the Modified BSD License.
  4. from nbformat import v4 as nbformat
  5. from .base import PreprocessorTestsBase
  6. from ..coalescestreams import coalesce_streams
  7. class TestCoalesceStreams(PreprocessorTestsBase):
  8. """Contains test functions for coalescestreams.py"""
  9. def test_coalesce_streams(self):
  10. """coalesce_streams preprocessor output test"""
  11. nb = self.build_notebook()
  12. res = self.build_resources()
  13. nb, res = coalesce_streams(nb, res)
  14. outputs = nb.cells[0].outputs
  15. self.assertEqual(outputs[0].text, "a")
  16. self.assertEqual(outputs[1].output_type, "display_data")
  17. self.assertEqual(outputs[2].text, "cd")
  18. self.assertEqual(outputs[3].text, "ef")
  19. def test_coalesce_sequenced_streams(self):
  20. """Can the coalesce streams preprocessor merge a sequence of streams?"""
  21. outputs = [nbformat.new_output(output_type="stream", name="stdout", text="0"),
  22. nbformat.new_output(output_type="stream", name="stdout", text="1"),
  23. nbformat.new_output(output_type="stream", name="stdout", text="2"),
  24. nbformat.new_output(output_type="stream", name="stdout", text="3"),
  25. nbformat.new_output(output_type="stream", name="stdout", text="4"),
  26. nbformat.new_output(output_type="stream", name="stdout", text="5"),
  27. nbformat.new_output(output_type="stream", name="stdout", text="6"),
  28. nbformat.new_output(output_type="stream", name="stdout", text="7")]
  29. cells=[nbformat.new_code_cell(source="# None", execution_count=1,outputs=outputs)]
  30. nb = nbformat.new_notebook(cells=cells)
  31. res = self.build_resources()
  32. nb, res = coalesce_streams(nb, res)
  33. outputs = nb.cells[0].outputs
  34. self.assertEqual(outputs[0].text, u'01234567')
  35. def test_coalesce_replace_streams(self):
  36. """Are \\r characters handled?"""
  37. outputs = [nbformat.new_output(output_type="stream", name="stdout", text="z"),
  38. nbformat.new_output(output_type="stream", name="stdout", text="\ra"),
  39. nbformat.new_output(output_type="stream", name="stdout", text="\nz\rb"),
  40. nbformat.new_output(output_type="stream", name="stdout", text="\nz"),
  41. nbformat.new_output(output_type="stream", name="stdout", text="\rc\n"),
  42. nbformat.new_output(output_type="stream", name="stdout", text="z\rz\rd")]
  43. cells=[nbformat.new_code_cell(source="# None", execution_count=1,outputs=outputs)]
  44. nb = nbformat.new_notebook(cells=cells)
  45. res = self.build_resources()
  46. nb, res = coalesce_streams(nb, res)
  47. outputs = nb.cells[0].outputs
  48. self.assertEqual(outputs[0].text, u'a\nb\nc\nd')