##// END OF EJS Templates
make markdown heading input match output size
make markdown heading input match output size

File last commit:

r18579:bd730f70
r18595:4e2e1fe7
Show More
test_validator.py
57 lines | 1.9 KiB | text/x-python | PythonLexer
"""Test nbformat.validator"""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import os
from .base import TestsBase
from jsonschema import ValidationError
from ..current import read
from ..validator import isvalid, validate
class TestValidator(TestsBase):
def test_nb2(self):
"""Test that a v2 notebook converted to current passes validation"""
with self.fopen(u'test2.ipynb', u'r') as f:
nb = read(f, u'json')
validate(nb)
self.assertEqual(isvalid(nb), True)
def test_nb3(self):
"""Test that a v3 notebook passes validation"""
with self.fopen(u'test3.ipynb', u'r') as f:
nb = read(f, u'json')
validate(nb)
self.assertEqual(isvalid(nb), True)
def test_nb4(self):
"""Test that a v3 notebook passes validation"""
with self.fopen(u'test4.ipynb', u'r') as f:
nb = read(f, u'json')
validate(nb)
self.assertEqual(isvalid(nb), True)
def test_invalid(self):
"""Test than an invalid notebook does not pass validation"""
# this notebook has a few different errors:
# - the name is an integer, rather than a string
# - one cell is missing its source
# - one cell has an invalid level
with self.fopen(u'invalid.ipynb', u'r') as f:
nb = read(f, u'json')
with self.assertRaises(ValidationError):
validate(nb)
self.assertEqual(isvalid(nb), False)
def test_future(self):
"""Test than a notebook from the future with extra keys passes validation"""
with self.fopen(u'test3plus.ipynb', u'r') as f:
nb = read(f)
with self.assertRaises(ValidationError):
validate(nb, version=3)
self.assertEqual(isvalid(nb, version=3), False)
self.assertEqual(isvalid(nb), True)