53
54
ui = tests.TestUIFactory(stdin=None,
54
55
stdout=tests.StringIOWrapper(),
55
56
stderr=tests.StringIOWrapper())
56
os = ui.make_output_stream()
57
self.assertEquals(os.encoding, enc)
57
output = ui.make_output_stream()
58
self.assertEquals(output.encoding, enc)
60
61
class TestTextUIFactory(tests.TestCase):
63
def make_test_ui_factory(self, stdin_contents):
64
ui = tests.TestUIFactory(stdin=stdin_contents,
65
stdout=tests.StringIOWrapper(),
66
stderr=tests.StringIOWrapper())
69
def test_text_factory_confirm(self):
70
# turns into reading a regular boolean
71
ui = self.make_test_ui_factory('n\n')
72
self.assertEquals(ui.confirm_action('Should %(thing)s pass?',
73
'bzrlib.tests.test_ui.confirmation',
62
77
def test_text_factory_ascii_password(self):
63
ui = tests.TestUIFactory(stdin='secret\n',
64
stdout=tests.StringIOWrapper(),
65
stderr=tests.StringIOWrapper())
78
ui = self.make_test_ui_factory('secret\n')
66
79
pb = ui.nested_progress_bar()
68
81
self.assertEqual('secret',
83
96
We can't predict what encoding users will have for stdin, so we force
84
97
it to utf8 to test that we transport the password correctly.
86
ui = tests.TestUIFactory(stdin=u'baz\u1234'.encode('utf8'),
87
stdout=tests.StringIOWrapper(),
88
stderr=tests.StringIOWrapper())
99
ui = self.make_test_ui_factory(u'baz\u1234'.encode('utf8'))
89
100
ui.stderr.encoding = ui.stdout.encoding = ui.stdin.encoding = 'utf8'
90
101
pb = ui.nested_progress_bar()
437
448
self.assertIsNone('off', av)
451
class TestConfirmationUserInterfacePolicy(tests.TestCase):
453
def test_confirm_action_default(self):
454
base_ui = _mod_ui.NoninteractiveUIFactory()
455
for answer in [True, False]:
457
_mod_ui.ConfirmationUserInterfacePolicy(base_ui, answer, {})
458
.confirm_action("Do something?",
459
"bzrlib.tests.do_something", {}),
462
def test_confirm_action_specific(self):
463
base_ui = _mod_ui.NoninteractiveUIFactory()
464
for default_answer in [True, False]:
465
for specific_answer in [True, False]:
466
for conf_id in ['given_id', 'other_id']:
467
wrapper = _mod_ui.ConfirmationUserInterfacePolicy(
468
base_ui, default_answer, dict(given_id=specific_answer))
469
result = wrapper.confirm_action("Do something?", conf_id, {})
470
if conf_id == 'given_id':
471
self.assertEquals(result, specific_answer)
473
self.assertEquals(result, default_answer)
476
base_ui = _mod_ui.NoninteractiveUIFactory()
477
wrapper = _mod_ui.ConfirmationUserInterfacePolicy(
478
base_ui, True, dict(a=2))
479
self.assertThat(repr(wrapper),
480
Equals("ConfirmationUserInterfacePolicy("
481
"NoninteractiveUIFactory(), True, {'a': 2})"))
440
484
class TestProgressRecordingUI(tests.TestCase):
441
485
"""Test test-oriented UIFactory that records progress updates"""