##// END OF EJS Templates
use TemporaryDirectory ctx manager in test_render_unicode_cwd
MinRK -
Show More
@@ -1,77 +1,74 b''
1 1 # -*- coding: utf-8
2 2 """Tests for prompt generation."""
3 3
4 import tempfile
5 4 import unittest
6 5
7 6 import os
8 7 import nose.tools as nt
9 8
10 9 from IPython.testing import tools as tt, decorators as dec
11 10 from IPython.core.prompts import PromptManager
12 11 from IPython.testing.globalipapp import get_ipython
12 from IPython.utils.tempdir import TemporaryDirectory
13 13
14 14 ip = get_ipython()
15 15
16 16
17 17 class PromptTests(unittest.TestCase):
18 18 def setUp(self):
19 19 self.pm = PromptManager(shell=ip, config=ip.config)
20 20
21 21 def test_multiline_prompt(self):
22 22 self.pm.in_template = "[In]\n>>>"
23 23 self.pm.render('in')
24 24 self.assertEqual(self.pm.width, 3)
25 25 self.assertEqual(self.pm.txtwidth, 3)
26 26
27 27 self.pm.in_template = '[In]\n'
28 28 self.pm.render('in')
29 29 self.assertEqual(self.pm.width, 0)
30 30 self.assertEqual(self.pm.txtwidth, 0)
31 31
32 32 def test_translate_abbreviations(self):
33 33 def do_translate(template):
34 34 self.pm.in_template = template
35 35 return self.pm.templates['in']
36 36
37 37 pairs = [(r'%n>', '{color.number}{count}{color.prompt}>'),
38 38 (r'\T', '{time}'),
39 39 (r'\n', '\n')
40 40 ]
41 41
42 42 tt.check_pairs(do_translate, pairs)
43 43
44 44 def test_user_ns(self):
45 45 self.pm.color_scheme = 'NoColor'
46 46 ip.ex("foo='bar'")
47 47 self.pm.in_template = "In [{foo}]"
48 48 prompt = self.pm.render('in')
49 49 self.assertEquals(prompt, u'In [bar]')
50 50
51 51 def test_builtins(self):
52 52 self.pm.color_scheme = 'NoColor'
53 53 self.pm.in_template = "In [{int}]"
54 54 prompt = self.pm.render('in')
55 55 self.assertEquals(prompt, u"In [%r]" % int)
56 56
57 57 def test_undefined(self):
58 58 self.pm.color_scheme = 'NoColor'
59 59 self.pm.in_template = "In [{foo_dne}]"
60 60 prompt = self.pm.render('in')
61 61 self.assertEquals(prompt, u"In [<ERROR: 'foo_dne' not found>]")
62 62
63 63 def test_render(self):
64 64 self.pm.in_template = r'\#>'
65 65 self.assertEqual(self.pm.render('in',color=False), '%d>' % ip.execution_count)
66 66
67 def test_render_unicode(self):
68 td = tempfile.mkdtemp(u'ünicødé')
67 def test_render_unicode_cwd(self):
69 68 save = os.getcwdu()
69 with TemporaryDirectory(u'ünicødé') as td:
70 70 os.chdir(td)
71 71 self.pm.in_template = r'\w [\#]'
72 try:
73 72 p = self.pm.render('in', color=False)
74 73 self.assertEquals(p, u"%s [%i]" % (os.getcwdu(), ip.execution_count))
75 finally:
76 74 os.chdir(save)
77 os.rmdir(td)
General Comments 0
You need to be logged in to leave comments. Login now