##// END OF EJS Templates
link to /edit/ on files
link to /edit/ on files

File last commit:

r18596:2d590459
r19307:e770effa
Show More
test_validate.py
105 lines | 2.5 KiB | text/x-python | PythonLexer
MinRK
first complete pass on v4...
r18573 """Tests for nbformat validation"""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import io
import os
import nose.tools as nt
MinRK
Use Draft4 JSON Schema for v4
r18574 from IPython.nbformat.validator import validate, ValidationError
MinRK
first complete pass on v4...
r18573 from ..nbjson import reads
MinRK
no longer need separate v4.compose...
r18575 from ..nbbase import (
nbformat,
MinRK
remove heading cells in v4
r18596 new_code_cell, new_markdown_cell, new_notebook,
MinRK
first complete pass on v4...
r18573 new_output, new_raw_cell,
)
MinRK
Use Draft4 JSON Schema for v4
r18574 def validate4(obj, ref=None):
return validate(obj, ref, version=nbformat)
MinRK
first complete pass on v4...
r18573 def test_valid_code_cell():
cell = new_code_cell()
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'code_cell')
MinRK
first complete pass on v4...
r18573
def test_invalid_code_cell():
cell = new_code_cell()
cell['source'] = 5
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'code_cell')
MinRK
first complete pass on v4...
r18573
cell = new_code_cell()
del cell['metadata']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'code_cell')
MinRK
first complete pass on v4...
r18573
cell = new_code_cell()
del cell['source']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'code_cell')
MinRK
first complete pass on v4...
r18573
cell = new_code_cell()
del cell['cell_type']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'code_cell')
MinRK
first complete pass on v4...
r18573
def test_invalid_markdown_cell():
cell = new_markdown_cell()
cell['source'] = 5
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'markdown_cell')
MinRK
first complete pass on v4...
r18573
cell = new_markdown_cell()
del cell['metadata']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'markdown_cell')
MinRK
first complete pass on v4...
r18573
cell = new_markdown_cell()
del cell['source']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'markdown_cell')
MinRK
first complete pass on v4...
r18573
cell = new_markdown_cell()
del cell['cell_type']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'markdown_cell')
MinRK
first complete pass on v4...
r18573
def test_invalid_raw_cell():
cell = new_raw_cell()
cell['source'] = 5
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'raw_cell')
MinRK
first complete pass on v4...
r18573
cell = new_raw_cell()
del cell['metadata']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'raw_cell')
MinRK
first complete pass on v4...
r18573
cell = new_raw_cell()
del cell['source']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'raw_cell')
MinRK
first complete pass on v4...
r18573
cell = new_raw_cell()
del cell['cell_type']
with nt.assert_raises(ValidationError):
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(cell, 'raw_cell')
MinRK
first complete pass on v4...
r18573
def test_sample_notebook():
here = os.path.dirname(__file__)
MinRK
no longer need separate v4.compose...
r18575 with io.open(os.path.join(here, os.pardir, os.pardir, 'tests', "test4.ipynb"), encoding='utf-8') as f:
MinRK
first complete pass on v4...
r18573 nb = reads(f.read())
MinRK
Use Draft4 JSON Schema for v4
r18574 validate4(nb)