Rev 5902: (jameinel) Cleanup the log infrastructure to reduce the chance of in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Fri May 20 12:37:35 UTC 2011


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 5902 [merge]
revision-id: pqm at pqm.ubuntu.com-20110520123724-hamrkqa9gtyazxyl
parent: pqm at pqm.ubuntu.com-20110520110731-8slefcqat6dr3asl
parent: john at arbash-meinel.com-20110519185007-yzrct57glwjip8co
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2011-05-20 12:37:24 +0000
message:
  (jameinel) Cleanup the log infrastructure to reduce the chance of
   self-cycles. (John A Meinel)
modified:
  bzrlib/tests/blackbox/test_breakin.py test_breakin.py-20070424043903-qyy6zm4pj3h4sbp3-1
  bzrlib/tests/blackbox/test_exceptions.py test_exceptions.py-20060604211237-yi2cxg0ose3xk4id-1
  bzrlib/tests/blackbox/test_log.py test_log.py-20060112090212-78f6ea560c868e24
  bzrlib/tests/blackbox/test_serve.py test_serve.py-20060913064329-8t2pvmsikl4s3xhl-1
  bzrlib/tests/per_repository_vf/test_check.py test_check.py-20110419124438-wxrtlhv70k7rxhg3-1
  bzrlib/tests/test_chk_map.py   test_chk_map.py-20081001014447-ue6kkuhofvdecvxa-2
  bzrlib/tests/test_clean_tree.py test_clean_tree.py-20060603174249-ozlk5sl2166opxbk-1
  bzrlib/tests/test_http.py      testhttp.py-20051018020158-b2eef6e867c514d9
  bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
  bzrlib/tests/test_registry.py  test_lazy_factory.py-20060809213415-2gfvqadtvdn0phtg-2
  bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
  bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
  bzrlib/tests/test_smart.py     test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
  bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
  bzrlib/tests/test_workingtree_4.py test_workingtree_4.p-20070223025758-531n3tznl3zacv2o-1
=== modified file 'bzrlib/tests/blackbox/test_breakin.py'
--- a/bzrlib/tests/blackbox/test_breakin.py	2010-08-14 21:06:04 +0000
+++ b/bzrlib/tests/blackbox/test_breakin.py	2011-05-19 18:50:07 +0000
@@ -42,6 +42,10 @@
     def setUp(self):
         super(TestBreakin, self).setUp()
         self.requireFeature(tests.BreakinFeature)
+        if sys.platform == 'win32':
+            self._send_signal = self._send_signal_win32
+        else:
+            self._send_signal = self._send_signal_via_kill
 
     def _send_signal_via_kill(self, pid, sig_type):
         if sig_type == 'break':
@@ -85,11 +89,6 @@
             exit_code = breakin.determine_signal()
             ctypes.windll.kernel32.TerminateProcess(pid, exit_code)
 
-    if sys.platform == 'win32':
-        _send_signal = _send_signal_win32
-    else:
-        _send_signal = _send_signal_via_kill
-
     def _popen(self, *args, **kwargs):
         if sys.platform == 'win32':
             CREATE_NEW_PROCESS_GROUP = 512

=== modified file 'bzrlib/tests/blackbox/test_exceptions.py'
--- a/bzrlib/tests/blackbox/test_exceptions.py	2011-05-18 18:57:24 +0000
+++ b/bzrlib/tests/blackbox/test_exceptions.py	2011-05-19 18:50:07 +0000
@@ -123,7 +123,7 @@
             check = self.assertContainsRe
         else:
             check = self.assertNotContainsRe
-        check(self.get_log(), 'WARNING.*bzr upgrade')
+        check(self._get_log(keep_log_file=True), 'WARNING.*bzr upgrade')
 
     def test_repository_deprecation_warning(self):
         """Old formats give a warning"""

=== modified file 'bzrlib/tests/blackbox/test_log.py'
--- a/bzrlib/tests/blackbox/test_log.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/blackbox/test_log.py	2011-05-19 18:50:07 +0000
@@ -75,8 +75,6 @@
                 self.log_catcher = test_log.LogCatcher(*args, **kwargs)
                 # Always return our own log formatter
                 return self.log_catcher
-        # Break cycle with closure over self on cleanup by removing method
-        self.addCleanup(setattr, MyLogFormatter, "__new__", None)
 
         def getme(branch):
                 # Always return our own log formatter class hijacking the

=== modified file 'bzrlib/tests/blackbox/test_serve.py'
--- a/bzrlib/tests/blackbox/test_serve.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/blackbox/test_serve.py	2011-05-19 18:50:07 +0000
@@ -274,8 +274,7 @@
 
 class TestUserdirExpansion(TestCaseWithMemoryTransport):
 
-    @staticmethod
-    def fake_expanduser(path):
+    def fake_expanduser(self, path):
         """A simple, environment-independent, function for the duration of this
         test.
 

=== modified file 'bzrlib/tests/per_repository_vf/test_check.py'
--- a/bzrlib/tests/per_repository_vf/test_check.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/per_repository_vf/test_check.py	2011-05-19 18:50:07 +0000
@@ -104,8 +104,8 @@
             needed_refs.setdefault(ref, []).append(tree.branch)
         self.tree_check = tree._check
         self.branch_check = tree.branch.check
-        self.overrideAttr(tree, "_check", self.tree_callback)
-        self.overrideAttr(tree.branch, "check", self.branch_callback)
+        tree._check = self.tree_callback
+        tree.branch.check = self.branch_callback
         self.callbacks = []
         tree.branch.repository.check([revid], callback_refs=needed_refs)
         self.assertNotEqual([], self.callbacks)

=== modified file 'bzrlib/tests/test_chk_map.py'
--- a/bzrlib/tests/test_chk_map.py	2010-11-12 15:26:01 +0000
+++ b/bzrlib/tests/test_chk_map.py	2011-05-19 18:50:07 +0000
@@ -1108,7 +1108,7 @@
         basis_get = basis._store.get_record_stream
         def get_record_stream(keys, order, fulltext):
             if ('sha1:1adf7c0d1b9140ab5f33bb64c6275fa78b1580b7',) in keys:
-                raise AssertionError("'aaa' pointer was followed %r" % keys)
+                self.fail("'aaa' pointer was followed %r" % keys)
             return basis_get(keys, order, fulltext)
         basis._store.get_record_stream = get_record_stream
         result = sorted(list(target.iter_changes(basis)))

=== modified file 'bzrlib/tests/test_clean_tree.py'
--- a/bzrlib/tests/test_clean_tree.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/test_clean_tree.py	2011-05-19 18:50:07 +0000
@@ -98,6 +98,7 @@
         def _dummy_rmtree(path, ignore_errors=False, onerror=None):
             """Call user supplied error handler onerror.
             """
+            self.assertTrue(isinstance(onerror, types.FunctionType))
             # Indicate failure in removing 'path' if path is subdir0
             # We later check to ensure that this is indicated
             # to the user as a warning. We raise OSError to construct

=== modified file 'bzrlib/tests/test_http.py'
--- a/bzrlib/tests/test_http.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/test_http.py	2011-05-19 18:50:07 +0000
@@ -2013,12 +2013,11 @@
         tests.TestCase.setUp(self)
         self.server = self._activity_server(self._protocol_version)
         self.server.start_server()
-        _activities = {} # Don't close over self and create a cycle
+        self.activities = {}
         def report_activity(t, bytes, direction):
-            count = _activities.get(direction, 0)
+            count = self.activities.get(direction, 0)
             count += bytes
-            _activities[direction] = count
-        self.activities = _activities
+            self.activities[direction] = count
 
         # We override at class level because constructors may propagate the
         # bound method and render instance overriding ineffective (an

=== modified file 'bzrlib/tests/test_merge.py'
--- a/bzrlib/tests/test_merge.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/test_merge.py	2011-05-19 18:50:07 +0000
@@ -2863,14 +2863,14 @@
 
     def get_merger_factory(self):
         # Allows  the inner methods to access the test attributes
-        calls = self.calls
+        test = self
 
         class FooMerger(_mod_merge.ConfigurableFileMerger):
             name_prefix = "foo"
             default_files = ['bar']
 
             def merge_text(self, params):
-                calls.append('merge_text')
+                test.calls.append('merge_text')
                 return ('not_applicable', None)
 
         def factory(merger):

=== modified file 'bzrlib/tests/test_registry.py'
--- a/bzrlib/tests/test_registry.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/test_registry.py	2011-05-19 18:50:07 +0000
@@ -215,13 +215,11 @@
         # We create a registry with "official" objects and "hidden"
         # objects. The later represent the side effects that led to bug #277048
         # and #430510
-        _registry = registry.Registry()
+        self.registry =  registry.Registry()
 
         def register_more():
-           _registry.register('hidden', None)
+            self.registry.register('hidden', None)
 
-        # Avoid closing over self by binding local variable
-        self.registry = _registry
         self.registry.register('passive', None)
         self.registry.register('active', register_more)
         self.registry.register('passive-too', None)
@@ -231,7 +229,7 @@
             def get_obj(inner_self):
                 # Surprise ! Getting a registered object (think lazy loaded
                 # module) register yet another object !
-                _registry.register('more hidden', None)
+                self.registry.register('more hidden', None)
                 return inner_self._obj
 
         self.registry.register('hacky', None)

=== modified file 'bzrlib/tests/test_repository.py'
--- a/bzrlib/tests/test_repository.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/test_repository.py	2011-05-19 18:50:07 +0000
@@ -1602,7 +1602,7 @@
         self.addCleanup(target.unlock)
         source = source_tree.branch.repository._get_source(target._format)
         self.orig_pack = target.pack
-        self.overrideAttr(target, "pack", self.log_pack)
+        target.pack = self.log_pack
         search = target.search_missing_revision_ids(
             source_tree.branch.repository, revision_ids=[tip])
         stream = source.get_stream(search)
@@ -1626,7 +1626,7 @@
         self.addCleanup(target.unlock)
         source = source_tree.branch.repository
         self.orig_pack = target.pack
-        self.overrideAttr(target, "pack", self.log_pack)
+        target.pack = self.log_pack
         target.fetch(source)
         if expect_pack_called:
             self.assertLength(1, self.calls)

=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py	2011-05-20 11:07:31 +0000
+++ b/bzrlib/tests/test_selftest.py	2011-05-20 12:37:24 +0000
@@ -36,7 +36,7 @@
     DocTestMatches,
     Equals,
     )
-import testtools.testresult.doubles
+import testtools.tests.helpers
 
 import bzrlib
 from bzrlib import (
@@ -721,7 +721,7 @@
 
     def test_profiles_tests(self):
         self.requireFeature(test_lsprof.LSProfFeature)
-        terminal = testtools.testresult.doubles.ExtendedTestResult()
+        terminal = testtools.tests.helpers.ExtendedTestResult()
         result = tests.ProfileResult(terminal)
         class Sample(tests.TestCase):
             def a(self):
@@ -744,7 +744,7 @@
                 descriptions=0,
                 verbosity=1,
                 )
-        capture = testtools.testresult.doubles.ExtendedTestResult()
+        capture = testtools.tests.helpers.ExtendedTestResult()
         test_case.run(MultiTestResult(result, capture))
         run_case = capture._events[0][1]
         timed_string = result._testTimeString(run_case)
@@ -1045,7 +1045,7 @@
         test = unittest.TestSuite()
         test.addTest(Test("known_failure_test"))
         def failing_test():
-            raise AssertionError('foo')
+            self.fail('foo')
         test.addTest(unittest.FunctionTestCase(failing_test))
         stream = StringIO()
         runner = tests.TextTestRunner(stream=stream)
@@ -1059,7 +1059,7 @@
             '^----------------------------------------------------------------------\n'
             'Traceback \\(most recent call last\\):\n'
             '  .*' # File .*, line .*, in failing_test' - but maybe not from .pyc
-            '    raise AssertionError\\(\'foo\'\\)\n'
+            '    self.fail\\(\'foo\'\\)\n'
             '.*'
             '^----------------------------------------------------------------------\n'
             '.*'
@@ -1071,7 +1071,7 @@
         # the final output.
         class Test(tests.TestCase):
             def known_failure_test(self):
-                self.knownFailure("Never works...")
+                self.expectFailure('failed', self.assertTrue, False)
         test = Test("known_failure_test")
         stream = StringIO()
         runner = tests.TextTestRunner(stream=stream)
@@ -2037,17 +2037,17 @@
 
     def test_lsprof_tests(self):
         self.requireFeature(test_lsprof.LSProfFeature)
-        results = []
+        calls = []
         class Test(object):
             def __call__(test, result):
                 test.run(result)
             def run(test, result):
-                results.append(result)
+                self.assertIsInstance(result, ExtendedToOriginalDecorator)
+                calls.append("called")
             def countTestCases(self):
                 return 1
         self.run_selftest(test_suite_factory=Test, lsprof_tests=True)
-        self.assertLength(1, results)
-        self.assertIsInstance(results.pop(), ExtendedToOriginalDecorator)
+        self.assertLength(1, calls)
 
     def test_random(self):
         # test randomising by listing a number of tests.

=== modified file 'bzrlib/tests/test_smart.py'
--- a/bzrlib/tests/test_smart.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/test_smart.py	2011-05-19 18:50:07 +0000
@@ -99,7 +99,7 @@
         # the default or a parameterized class, but rather use the
         # TestCaseWithTransport infrastructure to set up a smart server and
         # transport.
-        self.overrideAttr(self, "transport_server", self.make_transport_server)
+        self.transport_server = self.make_transport_server
 
     def make_transport_server(self):
         return test_server.SmartTCPServer_for_testing('-' + self.id())

=== modified file 'bzrlib/tests/test_smart_transport.py'
--- a/bzrlib/tests/test_smart_transport.py	2011-05-18 18:49:43 +0000
+++ b/bzrlib/tests/test_smart_transport.py	2011-05-19 18:50:07 +0000
@@ -1493,7 +1493,6 @@
         smart_protocol._has_dispatched = True
         smart_protocol.request = _mod_request.SmartServerRequestHandler(
             None, _mod_request.request_handlers, '/')
-        # GZ 2010-08-10: Cycle with closure affects 4 tests
         class FakeCommand(_mod_request.SmartServerRequest):
             def do_body(self_cmd, body_bytes):
                 self.end_received = True

=== modified file 'bzrlib/tests/test_workingtree_4.py'
--- a/bzrlib/tests/test_workingtree_4.py	2011-05-20 11:07:31 +0000
+++ b/bzrlib/tests/test_workingtree_4.py	2011-05-20 12:37:24 +0000
@@ -174,9 +174,9 @@
         # it's given; any calls to forbidden methods will raise an
         # AssertionError
         repo = tree.branch.repository
-        self.overrideAttr(repo, "get_revision", self.fail)
-        self.overrideAttr(repo, "get_inventory", self.fail)
-        self.overrideAttr(repo, "_get_inventory_xml", self.fail)
+        repo.get_revision = self.fail
+        repo.get_inventory = self.fail
+        repo._get_inventory_xml = self.fail
         # try to set the parent trees.
         tree.set_parent_trees([(rev1, rev1_tree)])
 
@@ -214,8 +214,8 @@
         # answer 'get_parent_ids' for the revision tree- dirstate does not
         # cache the parents of a parent tree at this point.
         #repo.get_revision = self.fail
-        self.overrideAttr(repo, "get_inventory", self.fail)
-        self.overrideAttr(repo, "_get_inventory_xml", self.fail)
+        repo.get_inventory = self.fail
+        repo._get_inventory_xml = self.fail
         # set the parent trees.
         tree.set_parent_trees([(rev1, rev1_tree), (rev2, rev2_tree)])
         # read the first tree




More information about the bazaar-commits mailing list