Rev 6512: (jameinel) Merge 2.4 into 2.5, in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/2.5/

Patch Queue Manager pqm at pqm.ubuntu.com
Thu May 23 09:23:10 UTC 2013


At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/2.5/

------------------------------------------------------------
revno: 6512 [merge]
revision-id: pqm at pqm.ubuntu.com-20130523092309-qdi5fuhfpwbb3hjo
parent: pqm at pqm.ubuntu.com-20120911090908-1xx05ree9c58y4in
parent: john at arbash-meinel.com-20130519142937-21ykz2n2y2f22za9
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: 2.5
timestamp: Thu 2013-05-23 09:23:09 +0000
message:
  (jameinel) Merge 2.4 into 2.5,
   and resolve a few conflicts wrt extract_format_string(). (John A Meinel)
modified:
  bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
  bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py	2012-04-30 09:50:33 +0000
+++ b/bzrlib/tests/__init__.py	2013-05-19 13:38:07 +0000
@@ -1782,9 +1782,15 @@
 
         :returns: The actual attr value.
         """
-        value = getattr(obj, attr_name)
         # The actual value is captured by the call below
-        self.addCleanup(setattr, obj, attr_name, value)
+        value = getattr(obj, attr_name, _unitialized_attr)
+        if value is _unitialized_attr:
+            # When the test completes, the attribute should not exist, but if
+            # we aren't setting a value, we don't need to do anything.
+            if new is not _unitialized_attr:
+                self.addCleanup(delattr, obj, attr_name)
+        else:
+            self.addCleanup(setattr, obj, attr_name, value)
         if new is not _unitialized_attr:
             setattr(obj, attr_name, new)
         return value

=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py	2012-09-07 10:33:40 +0000
+++ b/bzrlib/tests/test_selftest.py	2013-05-19 14:29:37 +0000
@@ -1653,6 +1653,12 @@
         self.assertRaises(AssertionError,
             self.assertListRaises, _TestException, success_generator)
 
+    def _run_successful_test(self, test):
+        result = testtools.TestResult()
+        test.run(result)
+        self.assertTrue(result.wasSuccessful())
+        return result
+
     def test_overrideAttr_without_value(self):
         self.test_attr = 'original' # Define a test attribute
         obj = self # Make 'obj' visible to the embedded test
@@ -1668,8 +1674,7 @@
                 obj.test_attr = 'modified'
                 self.assertEqual('modified', obj.test_attr)
 
-        test = Test('test_value')
-        test.run(unittest.TestResult())
+        self._run_successful_test(Test('test_value'))
         self.assertEqual('original', obj.test_attr)
 
     def test_overrideAttr_with_value(self):
@@ -1685,10 +1690,41 @@
                 self.assertEqual('original', self.orig)
                 self.assertEqual('modified', obj.test_attr)
 
-        test = Test('test_value')
-        test.run(unittest.TestResult())
+        self._run_successful_test(Test('test_value'))
         self.assertEqual('original', obj.test_attr)
 
+    def test_overrideAttr_with_no_existing_value_and_value(self):
+        # Do not define the test_attribute
+        obj = self # Make 'obj' visible to the embedded test
+        class Test(tests.TestCase):
+
+            def setUp(self):
+                tests.TestCase.setUp(self)
+                self.orig = self.overrideAttr(obj, 'test_attr', new='modified')
+
+            def test_value(self):
+                self.assertEqual(tests._unitialized_attr, self.orig)
+                self.assertEqual('modified', obj.test_attr)
+
+        self._run_successful_test(Test('test_value'))
+        self.assertRaises(AttributeError, getattr, obj, 'test_attr')
+
+    def test_overrideAttr_with_no_existing_value_and_no_value(self):
+        # Do not define the test_attribute
+        obj = self # Make 'obj' visible to the embedded test
+        class Test(tests.TestCase):
+
+            def setUp(self):
+                tests.TestCase.setUp(self)
+                self.orig = self.overrideAttr(obj, 'test_attr')
+
+            def test_value(self):
+                self.assertEqual(tests._unitialized_attr, self.orig)
+                self.assertRaises(AttributeError, getattr, obj, 'test_attr')
+
+        self._run_successful_test(Test('test_value'))
+        self.assertRaises(AttributeError, getattr, obj, 'test_attr')
+
     def test_recordCalls(self):
         from bzrlib.tests import test_selftest
         calls = self.recordCalls(




More information about the bazaar-commits mailing list