~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_branchbuilder.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:
1
 
# Copyright (C) 2007-2011 Canonical Ltd
 
1
# Copyright (C) 2007, 2009 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
18
18
 
19
19
from bzrlib import (
20
20
    branch as _mod_branch,
 
21
    errors,
21
22
    revision as _mod_revision,
22
23
    tests,
23
24
    )
170
171
        rev = branch.repository.get_revision(rev_id)
171
172
        self.assertEqual(u'Foo', rev.message)
172
173
 
173
 
    def test_commit_message_callback(self):
174
 
        builder = BranchBuilder(self.get_transport().clone('foo'))
175
 
        rev_id = builder.build_snapshot(None, None,
176
 
            [('add', (u'', None, 'directory', None))],
177
 
            message_callback=lambda x:u'Foo')
178
 
        branch = builder.get_branch()
179
 
        rev = branch.repository.get_revision(rev_id)
180
 
        self.assertEqual(u'Foo', rev.message)
181
 
 
182
174
    def test_modify_file(self):
183
175
        builder = self.build_a_rev()
184
176
        rev_id2 = builder.build_snapshot('B-id', None,
321
313
                             ], d_tree)
322
314
        # Because we copied the exact text into *this* tree, the 'c' file
323
315
        # should look like it was not modified in the merge
324
 
        self.assertEqual('C-id', d_tree.get_file_revision('c-id'))
325
 
 
326
 
    def test_set_parent_to_null(self):
327
 
        builder = self.build_a_rev()
328
 
        builder.start_series()
329
 
        self.addCleanup(builder.finish_series)
330
 
        builder.build_snapshot('B-id', [],
331
 
            [('add', ('', None, 'directory', None))])
332
 
        # We should now have a graph:
333
 
        #   A B
334
 
        # And not A => B
335
 
        repo = builder.get_branch().repository
336
 
        self.assertEqual({'A-id': (_mod_revision.NULL_REVISION,),
337
 
                          'B-id': (_mod_revision.NULL_REVISION,),},
338
 
                         repo.get_parent_map(['A-id', 'B-id']))
339
 
 
340
 
    
 
316
        self.assertEqual('C-id', d_tree.inventory['c-id'].revision)
 
317
 
341
318
    def test_start_finish_series(self):
342
319
        builder = BranchBuilder(self.get_transport().clone('foo'))
343
320
        builder.start_series()
349
326
            builder.finish_series()
350
327
        self.assertIs(None, builder._tree)
351
328
        self.assertFalse(builder._branch.is_locked())
352
 
 
353
 
    def test_ghost_mainline_history(self):
354
 
        builder = BranchBuilder(self.get_transport().clone('foo'))
355
 
        builder.start_series()
356
 
        try:
357
 
            builder.build_snapshot('tip', ['ghost'],
358
 
                [('add', ('', 'ROOT_ID', 'directory', ''))],
359
 
                allow_leftmost_as_ghost=True)
360
 
        finally:
361
 
            builder.finish_series()
362
 
        b = builder.get_branch()
363
 
        b.lock_read()
364
 
        self.addCleanup(b.unlock)
365
 
        self.assertEqual(('ghost',),
366
 
            b.repository.get_graph().get_parent_map(['tip'])['tip'])