test_convert.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # -*- coding: utf-8 -*-
  2. import copy
  3. from nbformat import validate
  4. from .. import convert
  5. from . import nbexamples
  6. from nbformat.v3.tests import nbexamples as v3examples
  7. from nbformat import v3, v4
  8. def test_upgrade_notebook():
  9. nb03 = copy.deepcopy(v3examples.nb0)
  10. validate(nb03)
  11. nb04 = convert.upgrade(nb03)
  12. validate(nb04)
  13. def test_downgrade_notebook():
  14. nb04 = copy.deepcopy(nbexamples.nb0)
  15. validate(nb04)
  16. nb03 = convert.downgrade(nb04)
  17. validate(nb03)
  18. def test_upgrade_heading():
  19. v3h = v3.new_heading_cell
  20. v4m = v4.new_markdown_cell
  21. for v3cell, expected in [
  22. (
  23. v3h(source='foo', level=1),
  24. v4m(source='# foo'),
  25. ),
  26. (
  27. v3h(source='foo\nbar\nmulti-line\n', level=4),
  28. v4m(source='#### foo bar multi-line'),
  29. ),
  30. (
  31. v3h(source=u'ünìcö∂e–cønvërsioñ', level=4),
  32. v4m(source=u'#### ünìcö∂e–cønvërsioñ'),
  33. ),
  34. ]:
  35. upgraded = convert.upgrade_cell(v3cell)
  36. assert upgraded == expected
  37. def test_downgrade_heading():
  38. v3h = v3.new_heading_cell
  39. v4m = v4.new_markdown_cell
  40. v3m = lambda source: v3.new_text_cell('markdown', source)
  41. for v4cell, expected in [
  42. (
  43. v4m(source='# foo'),
  44. v3h(source='foo', level=1),
  45. ),
  46. (
  47. v4m(source='#foo'),
  48. v3h(source='foo', level=1),
  49. ),
  50. (
  51. v4m(source='#\tfoo'),
  52. v3h(source='foo', level=1),
  53. ),
  54. (
  55. v4m(source='# \t foo'),
  56. v3h(source='foo', level=1),
  57. ),
  58. (
  59. v4m(source='# foo\nbar'),
  60. v3m(source='# foo\nbar'),
  61. ),
  62. ]:
  63. downgraded = convert.downgrade_cell(v4cell)
  64. assert downgraded == expected