test_display.py
161 lines
| 5.6 KiB
| text/x-python
|
PythonLexer
Greg Caporaso
|
r8366 | """Tests for IPython.lib.display. | |
""" | |||
#----------------------------------------------------------------------------- | |||
# Copyright (c) 2012, the IPython Development Team. | |||
# | |||
# Distributed under the terms of the Modified BSD License. | |||
# | |||
# The full license is in the file COPYING.txt, distributed with this software. | |||
#----------------------------------------------------------------------------- | |||
#----------------------------------------------------------------------------- | |||
# Imports | |||
#----------------------------------------------------------------------------- | |||
from __future__ import print_function | |||
Greg Caporaso
|
r8369 | from tempfile import NamedTemporaryFile, mkdtemp | |
Thomas Kluyver
|
r13548 | from os.path import split, join as pjoin, dirname | |
Greg Caporaso
|
r8366 | ||
# Third-party imports | |||
import nose.tools as nt | |||
# Our own imports | |||
from IPython.lib import display | |||
Thomas Kluyver
|
r13548 | from IPython.testing.decorators import skipif_not_numpy | |
Greg Caporaso
|
r8366 | ||
#----------------------------------------------------------------------------- | |||
# Classes and functions | |||
#----------------------------------------------------------------------------- | |||
#-------------------------- | |||
# FileLink tests | |||
#-------------------------- | |||
def test_instantiation_FileLink(): | |||
Greg Caporaso
|
r8835 | """FileLink: Test class can be instantiated""" | |
Greg Caporaso
|
r8366 | fl = display.FileLink('example.txt') | |
def test_warning_on_non_existant_path_FileLink(): | |||
Greg Caporaso
|
r8835 | """FileLink: Calling _repr_html_ on non-existant files returns a warning | |
""" | |||
Greg Caporaso
|
r8366 | fl = display.FileLink('example.txt') | |
nt.assert_true(fl._repr_html_().startswith('Path (<tt>example.txt</tt>)')) | |||
Greg Caporaso
|
r8369 | def test_existing_path_FileLink(): | |
Greg Caporaso
|
r8835 | """FileLink: Calling _repr_html_ functions as expected on existing filepath | |
""" | |||
Greg Caporaso
|
r8369 | tf = NamedTemporaryFile() | |
fl = display.FileLink(tf.name) | |||
actual = fl._repr_html_() | |||
MinRK
|
r14894 | expected = "<a href='%s' target='_blank'>%s</a><br>" % (tf.name,tf.name) | |
Greg Caporaso
|
r8369 | nt.assert_equal(actual,expected) | |
Greg Caporaso
|
r8444 | def test_existing_path_FileLink_repr(): | |
Greg Caporaso
|
r8835 | """FileLink: Calling repr() functions as expected on existing filepath | |
""" | |||
Greg Caporaso
|
r8444 | tf = NamedTemporaryFile() | |
fl = display.FileLink(tf.name) | |||
actual = repr(fl) | |||
expected = tf.name | |||
nt.assert_equal(actual,expected) | |||
Greg Caporaso
|
r8836 | def test_error_on_directory_to_FileLink(): | |
"""FileLink: Raises error when passed directory | |||
""" | |||
td = mkdtemp() | |||
nt.assert_raises(ValueError,display.FileLink,td) | |||
Greg Caporaso
|
r8366 | #-------------------------- | |
# FileLinks tests | |||
#-------------------------- | |||
def test_instantiation_FileLinks(): | |||
Greg Caporaso
|
r8835 | """FileLinks: Test class can be instantiated | |
""" | |||
Greg Caporaso
|
r8369 | fls = display.FileLinks('example') | |
Greg Caporaso
|
r8366 | ||
def test_warning_on_non_existant_path_FileLinks(): | |||
Greg Caporaso
|
r8835 | """FileLinks: Calling _repr_html_ on non-existant files returns a warning | |
""" | |||
Greg Caporaso
|
r8366 | fls = display.FileLinks('example') | |
nt.assert_true(fls._repr_html_().startswith('Path (<tt>example</tt>)')) | |||
Greg Caporaso
|
r8369 | def test_existing_path_FileLinks(): | |
Greg Caporaso
|
r8835 | """FileLinks: Calling _repr_html_ functions as expected on existing dir | |
""" | |||
Greg Caporaso
|
r8369 | td = mkdtemp() | |
tf1 = NamedTemporaryFile(dir=td) | |||
tf2 = NamedTemporaryFile(dir=td) | |||
fl = display.FileLinks(td) | |||
actual = fl._repr_html_() | |||
actual = actual.split('\n') | |||
actual.sort() | |||
Greg Caporaso
|
r9093 | # the links should always have forward slashes, even on windows, so replace | |
# backslashes with forward slashes here | |||
Greg Caporaso
|
r8631 | expected = ["%s/<br>" % td, | |
MinRK
|
r14894 | " <a href='%s' target='_blank'>%s</a><br>" %\ | |
Greg Caporaso
|
r9093 | (tf2.name.replace("\\","/"),split(tf2.name)[1]), | |
MinRK
|
r14894 | " <a href='%s' target='_blank'>%s</a><br>" %\ | |
Greg Caporaso
|
r9093 | (tf1.name.replace("\\","/"),split(tf1.name)[1])] | |
Greg Caporaso
|
r8369 | expected.sort() | |
# We compare the sorted list of links here as that's more reliable | |||
nt.assert_equal(actual,expected) | |||
Greg Caporaso
|
r8632 | def test_existing_path_FileLinks_alt_formatter(): | |
Greg Caporaso
|
r8835 | """FileLinks: Calling _repr_html_ functions as expected w/ an alt formatter | |
Greg Caporaso
|
r8632 | """ | |
td = mkdtemp() | |||
tf1 = NamedTemporaryFile(dir=td) | |||
tf2 = NamedTemporaryFile(dir=td) | |||
Greg Caporaso
|
r8802 | def fake_formatter(dirname,fnames,included_suffixes): | |
Greg Caporaso
|
r8801 | return ["hello","world"] | |
Greg Caporaso
|
r8632 | fl = display.FileLinks(td,notebook_display_formatter=fake_formatter) | |
actual = fl._repr_html_() | |||
actual = actual.split('\n') | |||
actual.sort() | |||
expected = ["hello","world"] | |||
expected.sort() | |||
# We compare the sorted list of links here as that's more reliable | |||
nt.assert_equal(actual,expected) | |||
Greg Caporaso
|
r8444 | def test_existing_path_FileLinks_repr(): | |
Greg Caporaso
|
r8835 | """FileLinks: Calling repr() functions as expected on existing directory """ | |
Greg Caporaso
|
r8444 | td = mkdtemp() | |
tf1 = NamedTemporaryFile(dir=td) | |||
tf2 = NamedTemporaryFile(dir=td) | |||
fl = display.FileLinks(td) | |||
actual = repr(fl) | |||
actual = actual.split('\n') | |||
actual.sort() | |||
Greg Caporaso
|
r8631 | expected = ['%s/' % td, ' %s' % split(tf1.name)[1],' %s' % split(tf2.name)[1]] | |
Greg Caporaso
|
r8444 | expected.sort() | |
# We compare the sorted list of links here as that's more reliable | |||
nt.assert_equal(actual,expected) | |||
Greg Caporaso
|
r8632 | ||
def test_existing_path_FileLinks_repr_alt_formatter(): | |||
Greg Caporaso
|
r8835 | """FileLinks: Calling repr() functions as expected w/ alt formatter | |
Greg Caporaso
|
r8632 | """ | |
td = mkdtemp() | |||
tf1 = NamedTemporaryFile(dir=td) | |||
tf2 = NamedTemporaryFile(dir=td) | |||
Greg Caporaso
|
r8802 | def fake_formatter(dirname,fnames,included_suffixes): | |
Greg Caporaso
|
r8801 | return ["hello","world"] | |
Greg Caporaso
|
r8632 | fl = display.FileLinks(td,terminal_display_formatter=fake_formatter) | |
actual = repr(fl) | |||
actual = actual.split('\n') | |||
actual.sort() | |||
expected = ["hello","world"] | |||
expected.sort() | |||
# We compare the sorted list of links here as that's more reliable | |||
nt.assert_equal(actual,expected) | |||
Greg Caporaso
|
r8836 | ||
def test_error_on_file_to_FileLinks(): | |||
"""FileLinks: Raises error when passed file | |||
""" | |||
td = mkdtemp() | |||
tf1 = NamedTemporaryFile(dir=td) | |||
nt.assert_raises(ValueError,display.FileLinks,tf1.name) | |||
Greg Caporaso
|
r8444 | ||
Thomas Kluyver
|
r13548 | @skipif_not_numpy | |
def test_audio_from_file(): | |||
path = pjoin(dirname(__file__), 'test.wav') | |||
display.Audio(filename=path) |