old_contents: # -*- coding: utf-8 -*-
  import copy
  
  import nose.tools as nt
  
  from IPython.nbformat import validate
  from .. import convert
  
  from . import nbexamples
  from IPython.nbformat.v3.tests import nbexamples as v3examples
  from IPython.nbformat import v3, v4
  
  def test_upgrade_notebook():
      nb03 = copy.deepcopy(v3examples.nb0)
      validate(nb03)
      nb04 = convert.upgrade(nb03)
      validate(nb04)
  
  def test_downgrade_notebook():
      nb04 = copy.deepcopy(nbexamples.nb0)
      validate(nb04)
      nb03 = convert.downgrade(nb04)
      validate(nb03)
  
  def test_upgrade_heading():
      v3h = v3.new_heading_cell
      v4m = v4.new_markdown_cell
      for v3cell, expected in [
          (
              v3h(source='foo', level=1),
              v4m(source='# foo'),
          ),
          (
              v3h(source='foo\nbar\nmulti-line\n', level=4),
              v4m(source='#### foo bar multi-line'),
          ),
          (
              v3h(source='ünìcö∂e–cønvërsioñ', level=4),
              v4m(source=u'#### ünìcö∂e–cønvërsioñ'),
          ),
      ]:
          upgraded = convert.upgrade_cell(v3cell)
          nt.assert_equal(upgraded, expected)
  
  def test_downgrade_heading():
      v3h = v3.new_heading_cell
      v4m = v4.new_markdown_cell
      v3m = lambda source: v3.new_text_cell('markdown', source)
      for v4cell, expected in [
          (
              v4m(source='# foo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='#foo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='#\tfoo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='# \t  foo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='# foo\nbar'),
              v3m(source='# foo\nbar'),
          ),
      ]:
          downgraded = convert.downgrade_cell(v4cell)
          nt.assert_equal(downgraded, expected)
  
new_contents: # -*- coding: utf-8 -*-
  import copy
  
  import nose.tools as nt
  
  from IPython.nbformat import validate
  from .. import convert
  
  from . import nbexamples
  from IPython.nbformat.v3.tests import nbexamples as v3examples
  from IPython.nbformat import v3, v4
  
  def test_upgrade_notebook():
      nb03 = copy.deepcopy(v3examples.nb0)
      validate(nb03)
      nb04 = convert.upgrade(nb03)
      validate(nb04)
  
  def test_downgrade_notebook():
      nb04 = copy.deepcopy(nbexamples.nb0)
      validate(nb04)
      nb03 = convert.downgrade(nb04)
      validate(nb03)
  
  def test_upgrade_heading():
      v3h = v3.new_heading_cell
      v4m = v4.new_markdown_cell
      for v3cell, expected in [
          (
              v3h(source='foo', level=1),
              v4m(source='# foo'),
          ),
          (
              v3h(source='foo\nbar\nmulti-line\n', level=4),
              v4m(source='#### foo bar multi-line'),
          ),
          (
              v3h(source=u'ünìcö∂e–cønvërsioñ', level=4),
              v4m(source=u'#### ünìcö∂e–cønvërsioñ'),
          ),
      ]:
          upgraded = convert.upgrade_cell(v3cell)
          nt.assert_equal(upgraded, expected)
  
  def test_downgrade_heading():
      v3h = v3.new_heading_cell
      v4m = v4.new_markdown_cell
      v3m = lambda source: v3.new_text_cell('markdown', source)
      for v4cell, expected in [
          (
              v4m(source='# foo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='#foo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='#\tfoo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='# \t  foo'),
              v3h(source='foo', level=1),
          ),
          (
              v4m(source='# foo\nbar'),
              v3m(source='# foo\nbar'),
          ),
      ]:
          downgraded = convert.downgrade_cell(v4cell)
          nt.assert_equal(downgraded, expected)
  
subject: fix unicode literal in v4.test_convert