Rev 2329: (Dmitry Vasiliev) Improvements to osutils functions. in http://bzr.arbash-meinel.com/branches/bzr/jam-integration

John Arbash Meinel john at arbash-meinel.com
Fri Mar 9 21:10:51 GMT 2007


At http://bzr.arbash-meinel.com/branches/bzr/jam-integration

------------------------------------------------------------
revno: 2329
revision-id: john at arbash-meinel.com-20070309211043-ln4hotho1vm2v5ur
parent: pqm at pqm.ubuntu.com-20070309020838-1dd7e652bc5c30ff
parent: dima at hlabs.spb.ru-20070307153731-2en9aa3ymzx4ltnn
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: jam-integration
timestamp: Fri 2007-03-09 15:10:43 -0600
message:
  (Dmitry Vasiliev) Improvements to osutils functions.
modified:
  bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
  bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
    ------------------------------------------------------------
    revno: 2324.2.4
    merged: dima at hlabs.spb.ru-20070307153731-2en9aa3ymzx4ltnn
    parent: dima at hlabs.spb.ru-20070307151756-ryfruec1tq9g8344
    committer: Dmitry Vasiliev <dima at hlabs.spb.ru>
    branch nick: Small fixes
    timestamp: Wed 2007-03-07 18:37:31 +0300
    message:
      Fixed test_unicode__walkdirs_utf8 test
    ------------------------------------------------------------
    revno: 2324.2.3
    merged: dima at hlabs.spb.ru-20070307151756-ryfruec1tq9g8344
    parent: dima at hlabs.spb.ru-20070307144251-ogtxgcax84659wb0
    committer: Dmitry Vasiliev <dima at hlabs.spb.ru>
    branch nick: Small fixes
    timestamp: Wed 2007-03-07 18:17:56 +0300
    message:
      Fixed is_inside_* methods implementation
    ------------------------------------------------------------
    revno: 2324.2.2
    merged: dima at hlabs.spb.ru-20070307144251-ogtxgcax84659wb0
    parent: dima at hlabs.spb.ru-20070307143607-na1fu8ut20td0i1u
    committer: Dmitry Vasiliev <dima at hlabs.spb.ru>
    branch nick: Small fixes
    timestamp: Wed 2007-03-07 17:42:51 +0300
    message:
      Fixed lexists() implementation
    ------------------------------------------------------------
    revno: 2324.2.1
    merged: dima at hlabs.spb.ru-20070307143607-na1fu8ut20td0i1u
    parent: pqm at pqm.ubuntu.com-20070307121852-b60a661123a5063d
    committer: Dmitry Vasiliev <dima at hlabs.spb.ru>
    branch nick: Small fixes
    timestamp: Wed 2007-03-07 17:36:07 +0300
    message:
      kind_marker() optimization
-------------- next part --------------
=== modified file 'bzrlib/osutils.py'
--- a/bzrlib/osutils.py	2007-03-07 01:14:11 +0000
+++ b/bzrlib/osutils.py	2007-03-07 15:17:56 +0000
@@ -145,26 +145,26 @@
     return umask
 
 
+_kind_marker_map = {
+    "file": "",
+    _directory_kind: "/",
+    "symlink": "@",
+}
 def kind_marker(kind):
-    if kind == 'file':
-        return ''
-    elif kind == _directory_kind:
-        return '/'
-    elif kind == 'symlink':
-        return '@'
-    else:
+    try:
+        return _kind_marker_map[kind]
+    except KeyError:
         raise errors.BzrError('invalid file kind %r' % kind)
 
+
 lexists = getattr(os.path, 'lexists', None)
 if lexists is None:
     def lexists(f):
         try:
-            if getattr(os, 'lstat') is not None:
-                os.lstat(f)
-            else:
-                os.stat(f)
+            stat = getattr(os, 'lstat', os.stat)
+            stat(f)
             return True
-        except OSError,e:
+        except OSError, e:
             if e.errno == errno.ENOENT:
                 return False;
             else:
@@ -518,8 +518,7 @@
     for dirname in dir_list:
         if is_inside(dirname, fname):
             return True
-    else:
-        return False
+    return False
 
 
 def is_inside_or_parent_of_any(dir_list, fname):
@@ -527,8 +526,7 @@
     for dirname in dir_list:
         if is_inside(dirname, fname) or is_inside(fname, dirname):
             return True
-    else:
-        return False
+    return False
 
 
 def pumpfile(fromfile, tofile):

=== modified file 'bzrlib/tests/test_osutils.py'
--- a/bzrlib/tests/test_osutils.py	2007-03-07 01:14:11 +0000
+++ b/bzrlib/tests/test_osutils.py	2007-03-07 15:37:31 +0000
@@ -241,6 +241,13 @@
         self.assertEqual(baz_path, osutils.dereference_path(foo_baz_path))
 
 
+    def test_kind_marker(self):
+        self.assertEqual("", osutils.kind_marker("file"))
+        self.assertEqual("/", osutils.kind_marker(osutils._directory_kind))
+        self.assertEqual("@", osutils.kind_marker("symlink"))
+        self.assertRaises(errors.BzrError, osutils.kind_marker, "unknown")
+
+
 class TestSafeUnicode(TestCase):
 
     def test_from_ascii_string(self):
@@ -704,7 +711,8 @@
         for dirdetail, dirblock in osutils._walkdirs_utf8('.'):
             self.assertIsInstance(dirdetail[0], str)
             if isinstance(dirdetail[1], unicode):
-                dirdetail[1] = dirdetail[1].encode('utf8')
+                dirdetail = (dirdetail[0], dirdetail[1].encode('utf8'))
+                dirblock = [list(info) for info in dirblock]
                 for info in dirblock:
                     self.assertIsInstance(info[4], unicode)
                     info[4] = info[4].encode('utf8')



More information about the bazaar-commits mailing list