~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/ui/text.py

  • Committer: Vincent Ladeuil
  • Date: 2007-02-21 14:46:06 UTC
  • mto: (2326.1.1 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 2327.
  • Revision ID: v.ladeuil+lp@free.fr-20070221144606-qoy01pue1p187j3b
Provide a better implementation for testing passwords.

* bzrlib/ui/__init__.py:
(UIFactory.get_login): Deleted.
(CLIUIFactory.get_non_echoed_password): New method allowing
overriding.

* bzrlib/tests/__init__.py:
(TestUIFactory.get_non_echoed_password): Allows password testing
 without worrying about echo echo.

* bzrlib/tests/__init__.py:
(TestUIFactory): Moved from bzrlib/tests/blackbox/__init__.py
(FakeStdin): Deleted.
(TestCase.run_bzr_captured): Set and reuse ui.ui_factory.stdin.

* bzrlib/ui/text.py:
(TextUIFactory.get_login): Deleted.
(TextUIFactory.get_password): Moved to CLIUIFactory.

* bzrlib/tests/test_ui.py:
(UITests): Delete get_login tests.
(FakeTextUIFactory): Deleted. Better implementation in
TestUIFactory.

* bzrlib/tests/blackbox/__init__.py:
(TestUIFactory): Moved to bzrlib/tests/__init__.py.

Show diffs side-by-side

added added

removed removed

Lines of Context:
73
73
        # bar depending on what we think of the terminal
74
74
        return progress.ProgressBar()
75
75
 
76
 
    def get_login(self, prompt='', **kwargs):
77
 
        """Prompt the user for a login (generally on a remote host).
78
 
 
79
 
        :param prompt: The prompt to present the user
80
 
        :param kwargs: Arguments which will be expanded into the prompt.
81
 
                       This lets front ends display different things if
82
 
                       they so choose.
83
 
        :return: The user string, return None if the user 
84
 
                 canceled the request.
85
 
        """
86
 
        prompt += ': '
87
 
        prompt = (prompt % kwargs).encode(sys.stdout.encoding, 'replace')
88
 
        self.prompt(prompt)
89
 
        login = self.stdin.readline()
90
 
        login = login.rstrip('\n')
91
 
        return login
92
 
 
93
 
    def get_password(self, prompt='', **kwargs):
94
 
        """Prompt the user for a password.
95
 
 
96
 
        :param prompt: The prompt to present the user
97
 
        :param kwargs: Arguments which will be expanded into the prompt.
98
 
                       This lets front ends display different things if
99
 
                       they so choose.
100
 
        :return: The password string, return None if the user 
101
 
                 canceled the request.
102
 
        """
103
 
        prompt += ': '
104
 
        prompt = (prompt % kwargs).encode(sys.stdout.encoding, 'replace')
105
 
        # There's currently no way to say 'i decline to enter a password'
106
 
        # as opposed to 'my password is empty' -- does it matter?
107
 
        return getpass.getpass(prompt)
108
 
 
109
76
    def nested_progress_bar(self):
110
77
        """Return a nested progress bar.
111
78