~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_ui.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-04-07 13:08:21 UTC
  • mfrom: (4222.2.12 ui-username)
  • Revision ID: pqm@pqm.ubuntu.com-20090407130821-e4wi39x60alhpnr4
(Jelmer) Add UIFactory.get_username.

Show diffs side-by-side

added added

removed removed

Lines of Context:
254
254
        finally:
255
255
            pb.finished()
256
256
 
 
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())
 
265
 
 
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())
 
278
 
 
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()
 
285
        try:
 
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"))
 
292
        finally:
 
293
            pb.finished()
 
294
 
257
295
 
258
296
class TestTextProgressView(TestCase):
259
297
    """Tests for text display of progress bars.