257
def test_silent_ui_getusername(self):
258
factory = SilentUIFactory()
259
factory.stdin = StringIO("someuser\n\n")
260
factory.stdout = StringIO()
261
self.assertEquals(None,
262
factory.get_username(u'Hello\u1234 %(host)s', host=u'some\u1234'))
263
self.assertEquals("", factory.stdout.getvalue())
264
self.assertEquals("someuser\n\n", factory.stdin.getvalue())
266
def test_text_ui_getusername(self):
267
factory = TextUIFactory(None, None, None)
268
factory.stdin = StringIO("someuser\n\n")
269
factory.stdout = StringIO()
270
factory.stdout.encoding = "utf8"
271
# there is no output from the base factory
272
self.assertEqual("someuser",
273
factory.get_username('Hello %(host)s', host='some'))
274
self.assertEquals("Hello some: ", factory.stdout.getvalue())
275
self.assertEqual("", factory.get_username("Gebruiker"))
276
# stdin should be empty
277
self.assertEqual('', factory.stdin.readline())
279
def test_text_ui_getusername_utf8(self):
280
ui = TestUIFactory(stdin=u'someuser\u1234'.encode('utf8'),
281
stdout=StringIOWrapper())
282
ui.stdin.encoding = "utf8"
283
ui.stdout.encoding = ui.stdin.encoding
284
pb = ui.nested_progress_bar()
286
# there is no output from the base factory
287
username = self.apply_redirected(ui.stdin, ui.stdout, ui.stdout,
288
ui.get_username, u'Hello\u1234 %(host)s', host=u'some\u1234')
289
self.assertEquals(u"someuser\u1234", username.decode('utf8'))
290
self.assertEquals(u"Hello\u1234 some\u1234: ",
291
ui.stdout.getvalue().decode("utf8"))
258
296
class TestTextProgressView(TestCase):
259
297
"""Tests for text display of progress bars.