aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/tools/docs
diff options
context:
space:
mode:
authorGravatar Mark Daoust <markdaoust@google.com>2018-08-22 11:42:40 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-08-22 11:46:27 -0700
commit8f2f9eb49813568b6a7b6a1fa7480e961f7b8c9a (patch)
treed9b0f186cf83042a7d26da2f807c41785493cbbe /tensorflow/tools/docs
parent3ad6066e015e7376a90760e3382cd59639290be2 (diff)
Add test for stacked "for_subclass_implementers" in class __mro__.
This test asserts that "for_subclass_implementers" short-circuits the __mro__ inspection. A method labeled "for_subclass_implementers" will be documented in it's defining class, regardless of inheritable decorations farther up the class hierarchy. PiperOrigin-RevId: 209802006
Diffstat (limited to 'tensorflow/tools/docs')
-rw-r--r--tensorflow/tools/docs/doc_controls_test.py39
1 files changed, 38 insertions, 1 deletions
diff --git a/tensorflow/tools/docs/doc_controls_test.py b/tensorflow/tools/docs/doc_controls_test.py
index 410342fb69..d5eb4ffc00 100644
--- a/tensorflow/tools/docs/doc_controls_test.py
+++ b/tensorflow/tools/docs/doc_controls_test.py
@@ -145,7 +145,7 @@ class DocControlsTest(googletest.TestCase):
self.assertTrue(
doc_controls.should_skip_class_attr(GrandChild, 'my_method'))
- def testfor_subclass_implementers(self):
+ def test_for_subclass_implementers(self):
class GrandParent(object):
@@ -178,6 +178,43 @@ class DocControlsTest(googletest.TestCase):
self.assertTrue(
doc_controls.should_skip_class_attr(Grand2Child, 'my_method'))
+ def test_for_subclass_implementers_short_circuit(self):
+
+ class GrandParent(object):
+
+ @doc_controls.for_subclass_implementers
+ def my_method(self):
+ pass
+
+ class Parent(GrandParent):
+
+ def my_method(self):
+ pass
+
+ class Child(Parent):
+
+ @doc_controls.do_not_doc_inheritable
+ def my_method(self):
+ pass
+
+ class GrandChild(Child):
+
+ @doc_controls.for_subclass_implementers
+ def my_method(self):
+ pass
+
+ class Grand2Child(Child):
+ pass
+
+ self.assertFalse(
+ doc_controls.should_skip_class_attr(GrandParent, 'my_method'))
+ self.assertTrue(doc_controls.should_skip_class_attr(Parent, 'my_method'))
+ self.assertTrue(doc_controls.should_skip_class_attr(Child, 'my_method'))
+ self.assertFalse(
+ doc_controls.should_skip_class_attr(GrandChild, 'my_method'))
+ self.assertTrue(
+ doc_controls.should_skip_class_attr(Grand2Child, 'my_method'))
+
if __name__ == '__main__':
googletest.main()