CasperSecurity

Current Path : /lib/python3/dist-packages/zope/interface/tests/
Upload File :
Current File : //lib/python3/dist-packages/zope/interface/tests/test_document.py

##############################################################################
#
# Copyright (c) 2001, 2002 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Documentation tests.
"""
import unittest


class Test_asStructuredText(unittest.TestCase):

    def _callFUT(self, iface):
        from zope.interface.document import asStructuredText
        return asStructuredText(iface)

    def test_asStructuredText_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "INoDocstring",
            " Attributes:",
            " Methods:",
            ""
        ])
        class INoDocstring(Interface):
            pass
        self.assertEqual(self._callFUT(INoDocstring), EXPECTED)

    def test_asStructuredText_empty_with_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IEmpty",
            " This is an empty interface.",
            " Attributes:",
            " Methods:",
            ""
        ])
        class IEmpty(Interface):
            """ This is an empty interface.
            """
        self.assertEqual(self._callFUT(IEmpty), EXPECTED)

    def test_asStructuredText_empty_with_multiline_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n'.join([
            "IEmpty",
            "",
            " This is an empty interface.",
            " ",
            ("             It can be used to annotate any class or object, "
                             "because it promises"),
            "             nothing.",
            "",
            " Attributes:",
            "",
            " Methods:",
            "",
            ""
        ])
        class IEmpty(Interface):
            """ This is an empty interface.

            It can be used to annotate any class or object, because it promises
            nothing.
            """
        self.assertEqual(self._callFUT(IEmpty), EXPECTED)

    def test_asStructuredText_with_attribute_no_docstring(self):
        from zope.interface import Attribute
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IHasAttribute",
            " This interface has an attribute.",
            " Attributes:",
            "  an_attribute -- no documentation",
            " Methods:",
            ""
        ])
        class IHasAttribute(Interface):
            """ This interface has an attribute.
            """
            an_attribute = Attribute('an_attribute')

        self.assertEqual(self._callFUT(IHasAttribute), EXPECTED)

    def test_asStructuredText_with_attribute_with_docstring(self):
        from zope.interface import Attribute
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IHasAttribute",
            " This interface has an attribute.",
            " Attributes:",
            "  an_attribute -- This attribute is documented.",
            " Methods:",
            ""
        ])
        class IHasAttribute(Interface):
            """ This interface has an attribute.
            """
            an_attribute = Attribute('an_attribute',
                                     'This attribute is documented.')

        self.assertEqual(self._callFUT(IHasAttribute), EXPECTED)

    def test_asStructuredText_with_method_no_args_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IHasMethod",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  aMethod() -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod():
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asStructuredText_with_method_positional_args_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IHasMethod",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  aMethod(first, second) -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod(first, second):
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asStructuredText_with_method_starargs_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IHasMethod",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  aMethod(first, second, *rest) -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod(first, second, *rest):
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asStructuredText_with_method_kwargs_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IHasMethod",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  aMethod(first, second, **kw) -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod(first, second, **kw):
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asStructuredText_with_method_with_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IHasMethod",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  aMethod() -- This method is documented.",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod():
                """This method is documented.
                """

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asStructuredText_derived_ignores_base(self):
        from zope.interface import Attribute
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "IDerived",
            " IDerived doc",
            " This interface extends:",
            "  o IBase",
            " Attributes:",
            "  attr1 -- no documentation",
            "  attr2 -- attr2 doc",
            " Methods:",
            "  method3() -- method3 doc",
            "  method4() -- no documentation",
            "  method5() -- method5 doc",
            "",
        ])

        class IBase(Interface):
            def method1():
                pass
            def method2():
                pass

        class IDerived(IBase):
            "IDerived doc"
            attr1 = Attribute('attr1')
            attr2 = Attribute('attr2', 'attr2 doc')

            def method3():
                "method3 doc"
            def method4():
                pass
            def method5():
                "method5 doc"

        self.assertEqual(self._callFUT(IDerived), EXPECTED)


class Test_asReStructuredText(unittest.TestCase):

    def _callFUT(self, iface):
        from zope.interface.document import asReStructuredText
        return asReStructuredText(iface)

    def test_asReStructuredText_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``INoDocstring``",
            " Attributes:",
            " Methods:",
            ""
        ])
        class INoDocstring(Interface):
            pass
        self.assertEqual(self._callFUT(INoDocstring), EXPECTED)

    def test_asReStructuredText_empty_with_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IEmpty``",
            " This is an empty interface.",
            " Attributes:",
            " Methods:",
            ""
        ])
        class IEmpty(Interface):
            """ This is an empty interface.
            """
        self.assertEqual(self._callFUT(IEmpty), EXPECTED)

    def test_asReStructuredText_empty_with_multiline_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n'.join([
            "``IEmpty``",
            "",
            " This is an empty interface.",
            " ",
            ("             It can be used to annotate any class or object, "
                             "because it promises"),
            "             nothing.",
            "",
            " Attributes:",
            "",
            " Methods:",
            "",
            ""
        ])
        class IEmpty(Interface):
            """ This is an empty interface.

            It can be used to annotate any class or object, because it promises
            nothing.
            """
        self.assertEqual(self._callFUT(IEmpty), EXPECTED)

    def test_asReStructuredText_with_attribute_no_docstring(self):
        from zope.interface import Attribute
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IHasAttribute``",
            " This interface has an attribute.",
            " Attributes:",
            "  ``an_attribute`` -- no documentation",
            " Methods:",
            ""
        ])
        class IHasAttribute(Interface):
            """ This interface has an attribute.
            """
            an_attribute = Attribute('an_attribute')

        self.assertEqual(self._callFUT(IHasAttribute), EXPECTED)

    def test_asReStructuredText_with_attribute_with_docstring(self):
        from zope.interface import Attribute
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IHasAttribute``",
            " This interface has an attribute.",
            " Attributes:",
            "  ``an_attribute`` -- This attribute is documented.",
            " Methods:",
            ""
        ])
        class IHasAttribute(Interface):
            """ This interface has an attribute.
            """
            an_attribute = Attribute('an_attribute',
                                     'This attribute is documented.')

        self.assertEqual(self._callFUT(IHasAttribute), EXPECTED)

    def test_asReStructuredText_with_method_no_args_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IHasMethod``",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  ``aMethod()`` -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod():
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asReStructuredText_with_method_positional_args_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IHasMethod``",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  ``aMethod(first, second)`` -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod(first, second):
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asReStructuredText_with_method_starargs_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IHasMethod``",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  ``aMethod(first, second, *rest)`` -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod(first, second, *rest):
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asReStructuredText_with_method_kwargs_no_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IHasMethod``",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  ``aMethod(first, second, **kw)`` -- no documentation",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod(first, second, **kw):
                pass

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asReStructuredText_with_method_with_docstring(self):
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IHasMethod``",
            " This interface has a method.",
            " Attributes:",
            " Methods:",
            "  ``aMethod()`` -- This method is documented.",
            ""
        ])
        class IHasMethod(Interface):
            """ This interface has a method.
            """
            def aMethod():
                """This method is documented.
                """

        self.assertEqual(self._callFUT(IHasMethod), EXPECTED)

    def test_asReStructuredText_derived_ignores_base(self):
        from zope.interface import Attribute
        from zope.interface import Interface
        EXPECTED = '\n\n'.join([
            "``IDerived``",
            " IDerived doc",
            " This interface extends:",
            "  o ``IBase``",
            " Attributes:",
            "  ``attr1`` -- no documentation",
            "  ``attr2`` -- attr2 doc",
            " Methods:",
            "  ``method3()`` -- method3 doc",
            "  ``method4()`` -- no documentation",
            "  ``method5()`` -- method5 doc",
            "",
        ])

        class IBase(Interface):
            def method1():
                pass
            def method2():
                pass

        class IDerived(IBase):
            "IDerived doc"
            attr1 = Attribute('attr1')
            attr2 = Attribute('attr2', 'attr2 doc')

            def method3():
                "method3 doc"
            def method4():
                pass
            def method5():
                "method5 doc"

        self.assertEqual(self._callFUT(IDerived), EXPECTED)


class Test__justify_and_indent(unittest.TestCase):

    def _callFUT(self, text, level, **kw):
        from zope.interface.document import _justify_and_indent
        return _justify_and_indent(text, level, **kw)

    def test_simple_level_0(self):
        LINES = ['Three blind mice', 'See how they run']
        text = '\n'.join(LINES)
        self.assertEqual(self._callFUT(text, 0), text)

    def test_simple_level_1(self):
        LINES = ['Three blind mice', 'See how they run']
        text = '\n'.join(LINES)
        self.assertEqual(self._callFUT(text, 1),
                         '\n'.join([' ' + line for line in LINES]))

    def test_simple_level_2(self):
        LINES = ['Three blind mice', 'See how they run']
        text = '\n'.join(LINES)
        self.assertEqual(self._callFUT(text, 1),
                         '\n'.join([' ' + line for line in LINES]))

    def test_simple_w_CRLF(self):
        LINES = ['Three blind mice', 'See how they run']
        text = '\r\n'.join(LINES)
        self.assertEqual(self._callFUT(text, 1),
                         '\n'.join([' ' + line for line in LINES]))

    def test_with_munge(self):
        TEXT = ("This is a piece of text longer than 15 characters, \n"
                "and split across multiple lines.")
        EXPECTED = ("  This is a piece\n"
                    "  of text longer\n"
                    "  than 15 characters,\n"
                    "  and split across\n"
                    "  multiple lines.\n"
                    " ")
        self.assertEqual(self._callFUT(TEXT, 1, munge=1, width=15), EXPECTED)
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY