~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_ui.py

  • Committer: Martin Pool
  • Date: 2009-07-22 06:00:45 UTC
  • mfrom: (4557 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4558.
  • Revision ID: mbp@sourcefrog.net-20090722060045-035t1zgpicwfyk93
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
207
207
        pb1.finished()
208
208
 
209
209
    def test_text_ui_get_boolean(self):
210
 
        stdin = StringIO("y\nyes with garbage\n"
211
 
                         "yes\nn\nnot an answer\n"
212
 
                         "no\n"
213
 
                         "N\nY\n"
214
 
                         "foo\n"
215
 
                        )
 
210
        stdin = StringIO("y\n" # True
 
211
                         "n\n" # False
 
212
                         "yes with garbage\nY\n" # True
 
213
                         "not an answer\nno\n" # False
 
214
                         "I'm sure!\nyes\n" # True
 
215
                         "NO\n" # False
 
216
                         "foo\n")
216
217
        stdout = StringIO()
217
218
        stderr = StringIO()
218
219
        factory = TextUIFactory(stdin, stdout, stderr)
219
220
        self.assertEqual(True, factory.get_boolean(""))
220
 
        self.assertEqual(True, factory.get_boolean(""))
221
 
        self.assertEqual(False, factory.get_boolean(""))
222
 
        self.assertEqual(False, factory.get_boolean(""))
223
 
        self.assertEqual(False, factory.get_boolean(""))
224
 
        self.assertEqual(True, factory.get_boolean(""))
 
221
        self.assertEqual(False, factory.get_boolean(""))
 
222
        self.assertEqual(True, factory.get_boolean(""))
 
223
        self.assertEqual(False, factory.get_boolean(""))
 
224
        self.assertEqual(True, factory.get_boolean(""))
 
225
        self.assertEqual(False, factory.get_boolean(""))
225
226
        self.assertEqual("foo\n", factory.stdin.read())
226
227
        # stdin should be empty
227
228
        self.assertEqual('', factory.stdin.readline())
341
342
        self.assertEqual(uif.get_username('Enter your user name'), 'mbp')
342
343
        self.assertEqual(uif.get_password('Password for %(host)s', host='example.com'),
343
344
            'password')
 
345
 
 
346
 
 
347
class TestBoolFromString(tests.TestCase):
 
348
 
 
349
    def assertIsTrue(self, s, accepted_values=None):
 
350
        res = _mod_ui.bool_from_string(s, accepted_values=accepted_values)
 
351
        self.assertEquals(True, res)
 
352
 
 
353
    def assertIsFalse(self, s, accepted_values=None):
 
354
        res = _mod_ui.bool_from_string(s, accepted_values=accepted_values)
 
355
        self.assertEquals(False, res)
 
356
 
 
357
    def assertIsNone(self, s, accepted_values=None):
 
358
        res = _mod_ui.bool_from_string(s, accepted_values=accepted_values)
 
359
        self.assertIs(None, res)
 
360
 
 
361
    def test_know_valid_values(self):
 
362
        self.assertIsTrue('true')
 
363
        self.assertIsFalse('false')
 
364
        self.assertIsTrue('1')
 
365
        self.assertIsFalse('0')
 
366
        self.assertIsTrue('on')
 
367
        self.assertIsFalse('off')
 
368
        self.assertIsTrue('yes')
 
369
        self.assertIsFalse('no')
 
370
        self.assertIsTrue('y')
 
371
        self.assertIsFalse('n')
 
372
        # Also try some case variations
 
373
        self.assertIsTrue('True')
 
374
        self.assertIsFalse('False')
 
375
        self.assertIsTrue('On')
 
376
        self.assertIsFalse('Off')
 
377
        self.assertIsTrue('ON')
 
378
        self.assertIsFalse('OFF')
 
379
        self.assertIsTrue('oN')
 
380
        self.assertIsFalse('oFf')
 
381
 
 
382
    def test_invalid_values(self):
 
383
        self.assertIsNone(None)
 
384
        self.assertIsNone('doubt')
 
385
        self.assertIsNone('frue')
 
386
        self.assertIsNone('talse')
 
387
        self.assertIsNone('42')
 
388
 
 
389
    def test_provided_values(self):
 
390
        av = dict(y=True, n=False, yes=True, no=False)
 
391
        self.assertIsTrue('y', av)
 
392
        self.assertIsTrue('Y', av)
 
393
        self.assertIsTrue('Yes', av)
 
394
        self.assertIsFalse('n', av)
 
395
        self.assertIsFalse('N', av)
 
396
        self.assertIsFalse('No', av)
 
397
        self.assertIsNone('1', av)
 
398
        self.assertIsNone('0', av)
 
399
        self.assertIsNone('on', av)
 
400
        self.assertIsNone('off', av)