##// END OF EJS Templates
Use Draft4 JSON Schema for v4
Use Draft4 JSON Schema for v4

File last commit:

r18574:a33db513
r18574:a33db513
Show More
test_validate.py
130 lines | 3.0 KiB | text/x-python | PythonLexer
"""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
from IPython.nbformat.validator import validate, ValidationError
from ..nbjson import reads
from ..nbbase import nbformat
from ..compose import (
new_code_cell, new_heading_cell, new_markdown_cell, new_notebook,
new_output, new_raw_cell,
)
def validate4(obj, ref=None):
return validate(obj, ref, version=nbformat)
def test_valid_code_cell():
cell = new_code_cell()
validate4(cell, 'code_cell')
def test_invalid_code_cell():
cell = new_code_cell()
cell['source'] = 5
with nt.assert_raises(ValidationError):
validate4(cell, 'code_cell')
cell = new_code_cell()
del cell['metadata']
with nt.assert_raises(ValidationError):
validate4(cell, 'code_cell')
cell = new_code_cell()
del cell['source']
with nt.assert_raises(ValidationError):
validate4(cell, 'code_cell')
cell = new_code_cell()
del cell['cell_type']
with nt.assert_raises(ValidationError):
validate4(cell, 'code_cell')
def test_invalid_markdown_cell():
cell = new_markdown_cell()
cell['source'] = 5
with nt.assert_raises(ValidationError):
validate4(cell, 'markdown_cell')
cell = new_markdown_cell()
del cell['metadata']
with nt.assert_raises(ValidationError):
validate4(cell, 'markdown_cell')
cell = new_markdown_cell()
del cell['source']
with nt.assert_raises(ValidationError):
validate4(cell, 'markdown_cell')
cell = new_markdown_cell()
del cell['cell_type']
with nt.assert_raises(ValidationError):
validate4(cell, 'markdown_cell')
def test_invalid_heading_cell():
cell = new_heading_cell()
cell['source'] = 5
with nt.assert_raises(ValidationError):
validate4(cell, 'heading_cell')
cell = new_heading_cell()
del cell['metadata']
with nt.assert_raises(ValidationError):
validate4(cell, 'heading_cell')
cell = new_heading_cell()
del cell['source']
with nt.assert_raises(ValidationError):
validate4(cell, 'heading_cell')
cell = new_heading_cell()
del cell['cell_type']
with nt.assert_raises(ValidationError):
validate4(cell, 'heading_cell')
def test_invalid_raw_cell():
cell = new_raw_cell()
cell['source'] = 5
with nt.assert_raises(ValidationError):
validate4(cell, 'raw_cell')
cell = new_raw_cell()
del cell['metadata']
with nt.assert_raises(ValidationError):
validate4(cell, 'raw_cell')
cell = new_raw_cell()
del cell['source']
with nt.assert_raises(ValidationError):
validate4(cell, 'raw_cell')
cell = new_raw_cell()
del cell['cell_type']
with nt.assert_raises(ValidationError):
validate4(cell, 'raw_cell')
def test_sample_notebook():
here = os.path.dirname(__file__)
with io.open(os.path.join(here, "v4-test.ipynb"), encoding='utf-8') as f:
nb = reads(f.read())
validate4(nb)