Rev 136: Compatibility function. in http://bazaar.launchpad.net/~meliae-dev/meliae/trunk

John Arbash Meinel john at arbash-meinel.com
Fri Jan 8 23:00:52 GMT 2010


At http://bazaar.launchpad.net/~meliae-dev/meliae/trunk

------------------------------------------------------------
revno: 136
revision-id: john at arbash-meinel.com-20100108230040-lcbz7lsww743mm0g
parent: john at arbash-meinel.com-20100108225133-yb2mzjetrfrwsrtv
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: trunk
timestamp: Fri 2010-01-08 17:00:40 -0600
message:
  Compatibility function.
  
  Restore .compute_referrers, but make it a deprecated function.
-------------- next part --------------
=== modified file 'meliae/loader.py'
--- a/meliae/loader.py	2010-01-08 22:20:26 +0000
+++ b/meliae/loader.py	2010-01-08 23:00:40 +0000
@@ -33,6 +33,7 @@
     files,
     _intset,
     _loader,
+    warn,
     )
 
 
@@ -204,6 +205,12 @@
     def __getitem__(self, address):
         return self.objs[address]
 
+    def compute_referrers(self):
+        """Deprecated, use compute_parents instead."""
+        warn.deprecated('.compute_referrers is deprecated.'
+                        ' Use .compute_parents instead.')
+        return self.compute_parents()
+
     def compute_parents(self):
         """For each object, figure out who is referencing it."""
         parents = {}

=== modified file 'meliae/tests/test_loader.py'
--- a/meliae/tests/test_loader.py	2010-01-08 22:20:26 +0000
+++ b/meliae/tests/test_loader.py	2010-01-08 23:00:40 +0000
@@ -24,6 +24,7 @@
     loader,
     scanner,
     tests,
+    warn,
     )
 
 
@@ -211,6 +212,31 @@
         self.assertEqual([2], objs[7].parents)
         self.assertEqual((), objs[8].parents)
 
+    def test_compute_referrers(self):
+        # Deprecated
+        logged = []
+        def log_warn(msg, klass, stacklevel=None):
+            logged.append((msg, klass, stacklevel))
+        old_func = warn.trap_warnings(log_warn)
+        try:
+            manager = loader.load(_example_dump, show_prog=False)
+            manager.compute_referrers()
+            self.assertEqual([('.compute_referrers is deprecated.'
+                               ' Use .compute_parents instead.',
+                               DeprecationWarning, 3),
+                             ], logged)
+            objs = manager.objs
+        finally:
+            warn.trap_warnings(old_func)
+        self.assertEqual((), objs[1].parents)
+        self.assertEqual([1, 8], objs[2].parents)
+        self.assertEqual([1, 3], objs[3].parents)
+        self.assertEqual([2, 3, 7], objs[4].parents)
+        self.assertEqual([2, 3, 7], objs[5].parents)
+        self.assertEqual([2], objs[6].parents)
+        self.assertEqual([2], objs[7].parents)
+        self.assertEqual((), objs[8].parents)
+
     def test_compute_total_size(self):
         manager = loader.load(_example_dump, show_prog=False)
         manager.compute_total_size()



More information about the bazaar-commits mailing list