Rev 134: Deprecate old functionality, but keep it around for now. in http://bazaar.launchpad.net/~meliae-dev/meliae/trunk

John Arbash Meinel john at arbash-meinel.com
Fri Jan 8 22:41:40 GMT 2010


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

------------------------------------------------------------
revno: 134
revision-id: john at arbash-meinel.com-20100108224128-u6fl61uuakvoebzc
parent: john at arbash-meinel.com-20100108223336-hfnjdiejvvzyi5c5
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: trunk
timestamp: Fri 2010-01-08 16:41:28 -0600
message:
  Deprecate old functionality, but keep it around for now.
-------------- next part --------------
=== modified file 'meliae/_loader.pyx'
--- a/meliae/_loader.pyx	2010-01-08 22:33:36 +0000
+++ b/meliae/_loader.pyx	2010-01-08 22:41:28 +0000
@@ -376,6 +376,8 @@
 
     property num_refs:
         def __get__(self):
+            warn.deprecated('Attribute .num_refs deprecated.'
+                            ' Use len() instead.')
             return self.__len__()
 
     def _intern_from_cache(self, cache):
@@ -399,7 +401,26 @@
             _free_ref_list(self._obj.children)
             self._obj.children = _list_to_ref_list(value)
 
+    property ref_list:
+        """The list of objects referenced by this object.
+
+        Deprecated, use .children instead.
+        """
+        def __get__(self):
+            warn.deprecated('Attribute .ref_list deprecated.'
+                            ' Use .children instead.')
+            return self.children
+
+        def __set__(self, val):
+            warn.deprecated('Attribute .ref_list deprecated.'
+                            ' Use .children instead.')
+            self.children = val
+
     property referrers:
+        """Objects which refer to this object.
+
+        Deprecated, use .parents instead.
+        """
         def __get__(self):
             warn.deprecated('Attribute .referrers deprecated.'
                             ' Use .parents instead.')
@@ -422,10 +443,11 @@
             _free_ref_list(self._obj.parent_list)
             self._obj.parent_list = _list_to_ref_list(value)
 
-    # TODO: deprecated for clarity
     property num_referrers:
         """The length of the parents list."""
         def __get__(self):
+            warn.deprecated('Attribute .num_referrers deprecated.'
+                            ' Use .num_parents instead.')
             if self._obj.parent_list == NULL:
                 return 0
             return self._obj.parent_list.size

=== modified file 'meliae/tests/test__loader.py'
--- a/meliae/tests/test__loader.py	2010-01-08 22:33:36 +0000
+++ b/meliae/tests/test__loader.py	2010-01-08 22:41:28 +0000
@@ -279,12 +279,39 @@
     def test_children(self):
         mop = self.moc.add(1234567, 'type', 256, children=[1, 2, 3])
         self.assertEqual(3, len(mop))
-        self.assertEqual(3, mop.num_refs)
         self.assertEqual([1, 2, 3], mop.children)
         mop.children = [87654321, 23456]
         self.assertEqual([87654321, 23456], mop.children)
         self.assertEqual(2, len(mop))
-        self.assertEqual(2, mop.num_refs)
+
+    def test_ref_list(self):
+        # Deprecated
+        logged = []
+        def log_warn(msg, klass, stacklevel=None):
+            logged.append((msg, klass, stacklevel))
+        old_func = warn.trap_warnings(log_warn)
+        try:
+            mop = self.moc.add(1234567, 'type', 256, children=[1, 2, 3])
+            self.assertEqual(3, len(mop))
+            self.assertEqual(3, mop.num_refs)
+            self.assertEqual([('Attribute .num_refs deprecated.'
+                               ' Use len() instead.', DeprecationWarning, 3),
+                             ], logged)
+            del logged[:]
+            self.assertEqual([1, 2, 3], mop.ref_list)
+            self.assertEqual([('Attribute .ref_list deprecated.'
+                               ' Use .children instead.',
+                               DeprecationWarning, 3),
+                             ], logged)
+            mop.ref_list = [87654321, 23456]
+            self.assertEqual([('Attribute .ref_list deprecated.'
+                               ' Use .children instead.',
+                               DeprecationWarning, 3),
+                             ]*2, logged)
+            self.assertEqual([87654321, 23456], mop.children)
+            self.assertEqual(2, len(mop))
+        finally:
+            warn.trap_warnings(old_func)
 
     def test__getitem__(self):
         mop = self.moc.add(1234567, 'type', 256, children=[0, 255])
@@ -341,6 +368,12 @@
                                DeprecationWarning, 3)
                              ]*2, logged)
             self.assertEqual([1234567], mop0.parents)
+            del logged[:]
+            self.assertEqual(1, mop0.num_referrers)
+            self.assertEqual([('Attribute .num_referrers deprecated.'
+                               ' Use .num_parents instead.',
+                               DeprecationWarning, 3)
+                             ], logged)
         finally:
             warn.trap_warnings(old_func)
 



More information about the bazaar-commits mailing list