Rev 5064: (vila) Fix for .bazaar ownership regression for bug #376388. (Parth in file:///home/pqm/archives/thelove/bzr/2.2/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Wed Jul 21 17:13:27 BST 2010
At file:///home/pqm/archives/thelove/bzr/2.2/
------------------------------------------------------------
revno: 5064 [merge]
revision-id: pqm at pqm.ubuntu.com-20100721161324-olpb0anw2ss7t5x2
parent: pqm at pqm.ubuntu.com-20100721112253-4c8u0jdfqsk5o412
parent: parth.malwankar at gmail.com-20100721031456-tpte0wnmyyvzm3mn
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: 2.2
timestamp: Wed 2010-07-21 17:13:24 +0100
message:
(vila) Fix for .bazaar ownership regression for bug #376388. (Parth
Malwankar)
modified:
bzrlib/config.py config.py-20051011043216-070c74f4e9e338e8
bzrlib/tests/test_config.py testconfig.py-20051011041908-742d0c15d8d8c8eb
=== modified file 'bzrlib/config.py'
--- a/bzrlib/config.py 2010-07-13 16:10:20 +0000
+++ b/bzrlib/config.py 2010-07-21 03:14:56 +0000
@@ -479,10 +479,12 @@
return self.get_user_option('nickname')
def _write_config_file(self):
- atomic_file = atomicfile.AtomicFile(self._get_filename())
+ filename = self._get_filename()
+ atomic_file = atomicfile.AtomicFile(filename)
self._get_parser().write(atomic_file)
atomic_file.commit()
atomic_file.close()
+ osutils.copy_ownership_from_path(filename)
class GlobalConfig(IniBasedConfig):
=== modified file 'bzrlib/tests/test_config.py'
--- a/bzrlib/tests/test_config.py 2010-04-23 07:15:23 +0000
+++ b/bzrlib/tests/test_config.py 2010-07-21 03:07:02 +0000
@@ -35,6 +35,7 @@
trace,
transport,
)
+from bzrlib.tests import features
from bzrlib.util.configobj import configobj
@@ -367,7 +368,7 @@
'/home/bogus/.cache')
-class TestIniConfig(tests.TestCase):
+class TestIniConfig(tests.TestCaseInTempDir):
def make_config_parser(self, s):
conf = config.IniBasedConfig(None)
@@ -393,6 +394,22 @@
parser = my_config._get_parser(file=config_file)
self.failUnless(my_config._get_parser() is parser)
+ def _dummy_chown(self, path, uid, gid):
+ self.path, self.uid, self.gid = path, uid, gid
+
+ def test_ini_config_ownership(self):
+ """Ensure that chown is happening during _write_config_file.
+ """
+ self.requireFeature(features.chown_feature)
+ self.overrideAttr(os, 'chown', self._dummy_chown)
+ self.path = self.uid = self.gid = None
+ def get_filename():
+ return 'foo.conf'
+ conf = config.IniBasedConfig(get_filename)
+ conf._write_config_file()
+ self.assertEquals(self.path, 'foo.conf')
+ self.assertTrue(isinstance(self.uid, int))
+ self.assertTrue(isinstance(self.gid, int))
class TestGetUserOptionAs(TestIniConfig):
More information about the bazaar-commits
mailing list