diff options
author | Mark Daoust <markdaoust@google.com> | 2018-08-22 11:42:40 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-08-22 11:46:27 -0700 |
commit | 8f2f9eb49813568b6a7b6a1fa7480e961f7b8c9a (patch) | |
tree | d9b0f186cf83042a7d26da2f807c41785493cbbe /tensorflow/tools/docs | |
parent | 3ad6066e015e7376a90760e3382cd59639290be2 (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.py | 39 |
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() |