Rev 2832: Portability fix in TestCommitBuilder for unlink. in file:///v/home/vila/src/cleanup/commit.builder/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Wed Sep 19 02:35:17 BST 2007
At file:///v/home/vila/src/cleanup/commit.builder/
------------------------------------------------------------
revno: 2832
revision-id: v.ladeuil+lp at free.fr-20070919013514-1gagtna1cfzbeedv
parent: pqm at pqm.ubuntu.com-20070918045733-es6jch43pxvogvhj
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: commit.builder
timestamp: Wed 2007-09-19 03:35:14 +0200
message:
Portability fix in TestCommitBuilder for unlink.
* bzrlib/tests/repository_implementations/test_commit_builder.py:
Clean up import statements.
(TestCommitBuilder._check_kind_change.change_kind): Rewritten for
portability (now valid for OSX and win32 too).
modified:
bzrlib/tests/repository_implementations/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
-------------- next part --------------
=== modified file 'bzrlib/tests/repository_implementations/test_commit_builder.py'
--- a/bzrlib/tests/repository_implementations/test_commit_builder.py 2007-09-10 01:27:10 +0000
+++ b/bzrlib/tests/repository_implementations/test_commit_builder.py 2007-09-19 01:35:14 +0000
@@ -16,24 +16,28 @@
"""Tests for repository commit builder."""
-from errno import EISDIR
+import errno
import os
-
-from bzrlib import inventory
-from bzrlib.errors import NonAsciiRevisionId, CannotSetRevisionId
-from bzrlib.repository import CommitBuilder
-from bzrlib import tests
-from bzrlib.tests.repository_implementations.test_repository import TestCaseWithRepository
-
-
-class TestCommitBuilder(TestCaseWithRepository):
+import sys
+
+from bzrlib import (
+ errors,
+ inventory,
+ osutils,
+ repository,
+ tests,
+ )
+from bzrlib.tests.repository_implementations import test_repository
+
+
+class TestCommitBuilder(test_repository.TestCaseWithRepository):
def test_get_commit_builder(self):
branch = self.make_branch('.')
branch.repository.lock_write()
builder = branch.repository.get_commit_builder(
branch, [], branch.get_config())
- self.assertIsInstance(builder, CommitBuilder)
+ self.assertIsInstance(builder, repository.CommitBuilder)
self.assertTrue(builder.random_revid)
branch.repository.commit_write_group()
branch.repository.unlock()
@@ -95,11 +99,11 @@
try:
builder = tree.branch.get_commit_builder([],
revision_id=revision_id)
- except NonAsciiRevisionId:
+ except errors.NonAsciiRevisionId:
revision_id = 'abc'
builder = tree.branch.get_commit_builder([],
revision_id=revision_id)
- except CannotSetRevisionId:
+ except errors.CannotSetRevisionId:
# This format doesn't support supplied revision ids
return
self.assertFalse(builder.random_revid)
@@ -417,12 +421,13 @@
path = 'name'
make_before(path)
def change_kind():
- try:
+ # Look Before You Leap (LBYL) is appropriate here because unlink
+ # will raise different exceptions on different OSes (linux: EISDIR,
+ # win32: EACCES, OSX: EPERM) when invoked on a directory.
+ if osutils.isdir(path): # Takes care of symlinks
+ os.rmdir(path)
+ else:
os.unlink(path)
- except OSError, e:
- if e.errno != EISDIR:
- raise
- os.rmdir(path)
make_after(path)
self._add_commit_change_check_changed(tree, path, change_kind)
More information about the bazaar-commits
mailing list