##// END OF EJS Templates
remove unnecessary 'js' subdir from services...
remove unnecessary 'js' subdir from services part of the point of services is that they are just code, so they won't have js/less/etc. files.

File last commit:

r18251:8601054f
r18422:b12e9e0d
Show More
test_validator.py
54 lines | 1.8 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
#-----------------------------------------------------------------------------
# Classes and functions
#-----------------------------------------------------------------------------
class TestValidator(TestsBase):
def test_nb2(self):
"""Test that a v2 notebook converted to v3 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_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)