~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/rules.py

  • Committer: Vincent Ladeuil
  • Date: 2009-05-04 14:48:21 UTC
  • mto: (4349.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 4350.
  • Revision ID: v.ladeuil+lp@free.fr-20090504144821-39dvqkikmd3zqkdg
Handle servers proposing several authentication schemes.

* bzrlib/transport/http/_urllib2_wrappers.py:
(AbstractAuthHandler.auth_required): Several schemes can be
proposed by the server, try to match each one in turn.
(BasicAuthHandler.auth_match): Delete dead code.

* bzrlib/tests/test_http.py:
(load_tests): Separate proxy and http authentication tests as they
require different server setups.
(TestAuth.create_transport_readonly_server): Simplified by using
parameter provided by load_tests.
(TestAuth.test_changing_nonce): Adapt to new parametrization.
(TestProxyAuth.create_transport_readonly_server): Deleted.

* bzrlib/tests/http_utils.py:
(DigestAndBasicAuthRequestHandler, HTTPBasicAndDigestAuthServer,
ProxyBasicAndDigestAuthServer): Add a test server proposing both
basic and digest auth schemes but accepting only digest as valid.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
from bzrlib import (
23
23
    config,
24
 
    cmdline,
 
24
    commands,
25
25
    errors,
26
26
    globbing,
27
27
    osutils,
36
36
FILE_PREFS_PREFIX = 'name '
37
37
FILE_PREFS_PREFIX_LEN = len(FILE_PREFS_PREFIX)
38
38
 
39
 
# The object providing default rules
40
 
_per_user_searcher = None
41
 
 
42
39
 
43
40
class _RulesSearcher(object):
44
41
    """An object that provides rule-based preferences."""
81
78
        self.pattern_to_section = {}
82
79
        for s in sections:
83
80
            if s.startswith(FILE_PREFS_PREFIX):
84
 
                file_patterns = cmdline.split(s[FILE_PREFS_PREFIX_LEN:])
 
81
                file_patterns = commands.shlex_split_unicode(
 
82
                    s[FILE_PREFS_PREFIX_LEN:])
85
83
                patterns.extend(file_patterns)
86
84
                for fp in file_patterns:
87
85
                    self.pattern_to_section[fp] = s
148
146
    return osutils.pathjoin(config.config_dir(), 'rules')
149
147
 
150
148
 
151
 
def reset_rules():
152
 
    global _per_user_searcher
153
 
    _per_user_searcher = _IniBasedRulesSearcher(rules_filename())
154
 
 
155
 
reset_rules()
 
149
# The object providing default rules
 
150
_per_user_searcher = _IniBasedRulesSearcher(rules_filename())