test_paths.py
61 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
Min RK
|
r18757 | |||
import re | ||||
import nose.tools as nt | ||||
from IPython.html.base.handlers import path_regex, notebook_path_regex | ||||
try: # py3 | ||||
assert_regex = nt.assert_regex | ||||
assert_not_regex = nt.assert_not_regex | ||||
except AttributeError: # py2 | ||||
assert_regex = nt.assert_regexp_matches | ||||
assert_not_regex = nt.assert_not_regexp_matches | ||||
# build regexps that tornado uses: | ||||
path_pat = re.compile('^' + '/x%s' % path_regex + '$') | ||||
nb_path_pat = re.compile('^' + '/y%s' % notebook_path_regex + '$') | ||||
def test_path_regex(): | ||||
for path in ( | ||||
'/x', | ||||
'/x/', | ||||
'/x/foo', | ||||
'/x/foo.ipynb', | ||||
'/x/foo/bar', | ||||
'/x/foo/bar.txt', | ||||
): | ||||
assert_regex(path, path_pat) | ||||
def test_path_regex_bad(): | ||||
for path in ( | ||||
'/xfoo', | ||||
'/xfoo/', | ||||
'/xfoo/bar', | ||||
'/xfoo/bar/', | ||||
'/x/foo/bar/', | ||||
'/x//foo', | ||||
'/y', | ||||
'/y/x/foo', | ||||
): | ||||
assert_not_regex(path, path_pat) | ||||
def test_notebook_path_regex(): | ||||
for path in ( | ||||
'/y/asdf.ipynb', | ||||
'/y/foo/bar.ipynb', | ||||
'/y/a/b/c/d/e.ipynb', | ||||
): | ||||
assert_regex(path, nb_path_pat) | ||||
def test_notebook_path_regex_bad(): | ||||
for path in ( | ||||
'/y', | ||||
'/y/', | ||||
'/y/.ipynb', | ||||
'/y/foo/.ipynb', | ||||
'/y/foo/bar', | ||||
'/yfoo.ipynb', | ||||
'/yfoo/bar.ipynb', | ||||
): | ||||
assert_not_regex(path, nb_path_pat) | ||||