##// END OF EJS Templates
update LATEX_SUBS table
update LATEX_SUBS table

File last commit:

r11974:1cd29943
r12063:3fd74018
Show More
test_strings.py
128 lines | 4.2 KiB | text/x-python | PythonLexer
Jonathan Frederic
Add new filter tests
r11902 """
Module with tests for Strings
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2013, 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
#-----------------------------------------------------------------------------
Paul Ivanov
add missing import, properly use os.path.join
r11974 import os
Jonathan Frederic
Add new filter tests
r11902
Jonathan Frederic
Use decorator to enable test generation
r11935 from IPython.testing import decorators as dec
Jonathan Frederic
Add new filter tests
r11902 from ...tests.base import TestsBase
Jonathan Frederic
Fixed line break syntax error
r11930 from ..strings import (wrap_text, html2text, add_anchor, strip_dollars,
MinRK
add posix_path filter...
r11972 strip_files_prefix, get_lines, comment_lines, ipython2python, posix_path,
)
Jonathan Frederic
Add new filter tests
r11902
#-----------------------------------------------------------------------------
# Class
#-----------------------------------------------------------------------------
class TestStrings(TestsBase):
def test_wrap_text(self):
Jonathan Frederic
Shrink header comments
r11934 """wrap_text test"""
Jonathan Frederic
Add new filter tests
r11902 test_text = """
Tush! never tell me; I take it much unkindly
That thou, Iago, who hast had my purse
As if the strings were thine, shouldst know of this.
"""
for length in [30,5,1]:
Jonathan Frederic
Use IPython parameterized testing
r11936 yield self._confirm_wrap_text(test_text, length)
Jonathan Frederic
Add new filter tests
r11902
Jonathan Frederic
Use decorator to enable test generation
r11935
Jonathan Frederic
Add new filter tests
r11902 def _confirm_wrap_text(self, text, length):
for line in wrap_text(text, length).split('\n'):
assert len(line) <= length
Jonathan Frederic
Use decorator to enable test generation
r11935
Jonathan Frederic
Add new filter tests
r11902 def test_html2text(self):
Jonathan Frederic
Shrink header comments
r11934 """html2text test"""
Jonathan Frederic
Add new filter tests
r11902 #TODO: More tests
Jonathan Frederic
Use IPython parameterized testing
r11936 self.assertEqual(html2text('<name>joe</name>'), 'joe')
Jonathan Frederic
Add new filter tests
r11902
def test_add_anchor(self):
Jonathan Frederic
Shrink header comments
r11934 """add_anchor test"""
Jonathan Frederic
Add new filter tests
r11902 #TODO: More tests
Jonathan Frederic
Moved add_anchor bytes-strings fix into add_anchor
r11927 results = add_anchor('<b>Hello World!</b>')
Jonathan Frederic
Fixed py3 / unicode compat
r11925 assert 'Hello World!' in results
assert 'id="' in results
assert 'class="anchor-link"' in results
assert '<b' in results
assert '</b>' in results
Jonathan Frederic
Add new filter tests
r11902
def test_strip_dollars(self):
Jonathan Frederic
Shrink header comments
r11934 """strip_dollars test"""
Jonathan Frederic
Add new filter tests
r11902 tests = [
('', ''),
('$$', ''),
('$H$', 'H'),
('$He', 'He'),
('H$el', 'H$el'),
('Hell$', 'Hell'),
('Hello', 'Hello'),
('W$o$rld', 'W$o$rld')]
for test in tests:
Jonathan Frederic
Use IPython parameterized testing
r11936 yield self._try_strip_dollars(test[0], test[1])
Jonathan Frederic
Add new filter tests
r11902
def _try_strip_dollars(self, test, result):
Jonathan Frederic
Use IPython parameterized testing
r11936 self.assertEqual(strip_dollars(test), result)
Jonathan Frederic
Add new filter tests
r11902
def test_strip_files_prefix(self):
Jonathan Frederic
Shrink header comments
r11934 """strip_files_prefix test"""
Jonathan Frederic
Add new filter tests
r11902 tests = [
('', ''),
('/files', '/files'),
('test="/files"', 'test="/files"'),
('My files are in `files/`', 'My files are in `files/`'),
('<a href="files/test.html">files/test.html</a>', '<a href="test.html">files/test.html</a>')]
for test in tests:
Jonathan Frederic
Use IPython parameterized testing
r11936 yield self._try_files_prefix(test[0], test[1])
Jonathan Frederic
Add new filter tests
r11902
def _try_files_prefix(self, test, result):
Jonathan Frederic
Use IPython parameterized testing
r11936 self.assertEqual(strip_files_prefix(test), result)
Jonathan Frederic
Add new filter tests
r11902
def test_comment_lines(self):
Jonathan Frederic
Shrink header comments
r11934 """comment_lines test"""
Jonathan Frederic
Add new filter tests
r11902 for line in comment_lines('hello\nworld\n!').split('\n'):
assert line.startswith('# ')
for line in comment_lines('hello\nworld\n!', 'beep').split('\n'):
assert line.startswith('beep')
def test_get_lines(self):
Jonathan Frederic
Shrink header comments
r11934 """get_lines test"""
Jonathan Frederic
Add new filter tests
r11902 text = "hello\nworld\n!"
Jonathan Frederic
Use IPython parameterized testing
r11936 self.assertEqual(get_lines(text, start=1), "world\n!")
self.assertEqual(get_lines(text, end=2), "hello\nworld")
self.assertEqual(get_lines(text, start=2, end=5), "!")
self.assertEqual(get_lines(text, start=-2), "world\n!")
Jonathan Frederic
Add new filter tests
r11902
def test_ipython2python(self):
Jonathan Frederic
Shrink header comments
r11934 """ipython2python test"""
Jonathan Frederic
Add new filter tests
r11902 #TODO: More tests
Jonathan Frederic
Fixed py3 / unicode compat
r11925 results = ipython2python(u'%%pylab\nprint("Hello-World")').replace("u'", "'")
self.fuzzy_compare(results, u"get_ipython().run_cell_magic('pylab', '', 'print(\"Hello-World\")')",
Jonathan Frederic
More agressive fuzzy compare
r11923 ignore_spaces=True, ignore_newlines=True)
MinRK
add posix_path filter...
r11972
def test_posix_path(self):
path_list = ['foo', 'bar']
expected = '/'.join(path_list)
Paul Ivanov
add missing import, properly use os.path.join
r11974 native = os.path.join(*path_list)
MinRK
add posix_path filter...
r11972 filtered = posix_path(native)
self.assertEqual(filtered, expected)