~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_lockable_files.py

Add bzrlib.pyutils, which has get_named_object, a wrapper around __import__.

This is used to replace various ad hoc implementations of the same logic,
notably the version used in registry's _LazyObjectGetter which had a bug when
getting a module without also getting a member.  And of course, this new
function has unit tests, unlike the replaced code.

This also adds a KnownHooksRegistry subclass to provide a more natural home for
some other logic.

I'm not thrilled about the name of the new module or the new functions, but it's
hard to think of good names for such generic functionality.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
    errors,
22
22
    lockdir,
23
23
    osutils,
 
24
    transport,
24
25
    )
25
26
from bzrlib.errors import BzrBadParameterNotString, NoSuchFile, ReadOnlyError
26
27
from bzrlib.lockable_files import LockableFiles, TransportLock
37
38
                                 ReadOnlyTransaction,
38
39
                                 WriteTransaction,
39
40
                                 )
40
 
from bzrlib.transport import get_transport
41
41
 
42
42
 
43
43
# these tests are applied in each parameterized suite for LockableFiles
279
279
 
280
280
    def setUp(self):
281
281
        TestCaseInTempDir.setUp(self)
282
 
        transport = get_transport('.')
283
 
        transport.mkdir('.bzr')
284
 
        self.sub_transport = transport.clone('.bzr')
 
282
        t = transport.get_transport('.')
 
283
        t.mkdir('.bzr')
 
284
        self.sub_transport = t.clone('.bzr')
285
285
        self.lockable = self.get_lockable()
286
286
        self.lockable.create_lock()
287
287
 
304
304
 
305
305
    def setUp(self):
306
306
        TestCaseInTempDir.setUp(self)
307
 
        self.transport = get_transport('.')
 
307
        self.transport = transport.get_transport('.')
308
308
        self.lockable = self.get_lockable()
309
309
        # the lock creation here sets mode - test_permissions on branch
310
310
        # tests that implicitly, but it might be a good idea to factor
347
347
        # in test_remote and test_smart as usual.
348
348
        b = self.make_branch('foo')
349
349
        self.addCleanup(b.bzrdir.transport.disconnect)
350
 
        self.transport = get_transport('.')
 
350
        self.transport = transport.get_transport('.')
351
351
        self.lockable = self.get_lockable()
352
352
 
353
353
    def get_lockable(self):