##// END OF EJS Templates
Be more explicit on how we handle osx clipboard....
Be more explicit on how we handle osx clipboard. The return values can only be bytes as we do bytes manipulations before. So if we need to return text; we always need to decode. We can now also leave the default encoding out; as py3compat.decode takecare of that for us

File last commit:

r25082:17589e2e
r25288:c812a497
Show More
test_compilerop.py
73 lines | 2.3 KiB | text/x-python | PythonLexer
# coding: utf-8
"""Tests for the compilerop module.
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2010-2011 The IPython Development Team.
#
# Distributed under the terms of the BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Stdlib imports
import linecache
import sys
# Third-party imports
import nose.tools as nt
# Our own imports
from IPython.core import compilerop
#-----------------------------------------------------------------------------
# Test functions
#-----------------------------------------------------------------------------
def test_code_name():
code = 'x=1'
name = compilerop.code_name(code)
nt.assert_true(name.startswith('<ipython-input-0'))
def test_code_name2():
code = 'x=1'
name = compilerop.code_name(code, 9)
nt.assert_true(name.startswith('<ipython-input-9'))
def test_cache():
"""Test the compiler correctly compiles and caches inputs
"""
cp = compilerop.CachingCompiler()
ncache = len(linecache.cache)
cp.cache('x=1')
nt.assert_true(len(linecache.cache) > ncache)
def test_proper_default_encoding():
# Check we're in a proper Python 2 environment (some imports, such
# as GTK, can change the default encoding, which can hide bugs.)
nt.assert_equal(sys.getdefaultencoding(), "utf-8")
def test_cache_unicode():
cp = compilerop.CachingCompiler()
ncache = len(linecache.cache)
cp.cache(u"t = 'žćčšđ'")
nt.assert_true(len(linecache.cache) > ncache)
def test_compiler_check_cache():
"""Test the compiler properly manages the cache.
"""
# Rather simple-minded tests that just exercise the API
cp = compilerop.CachingCompiler()
cp.cache('x=1', 99)
# Ensure now that after clearing the cache, our entries survive
linecache.checkcache()
for k in linecache.cache:
if k.startswith('<ipython-input-99'):
break
else:
raise AssertionError('Entry for input-99 missing from linecache')