a
    Ø
þd±#  ã                   @   sj   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ G dd„ dej	ƒZ
ed	krfe ¡  dS )
z%Tests for yapf.blank_line_calculator.é    N)Úreformatter)Ústyle)Úyapf_api)Úyapf_test_helperc                   @   s€   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚBasicBlankLineCalculatorTestc                 C   s   t  t  ¡ ¡ d S )N)r   ZSetGlobalStyleZCreateYapfStyle)Úcls© r   úm/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/yapftests/blank_line_calculator_test.pyÚ
setUpClass   s    z'BasicBlankLineCalculatorTest.setUpClassc                 C   s4   t  d¡}t  d¡}t |¡}|  |t |¡¡ d S )Nz;        @bork()

        def foo():
          pass
        z:        @bork()
        def foo():
          pass
        ©ÚtextwrapÚdedentr   ZParseAndUnwrapÚassertCodeEqualr   ZReformat©ÚselfÚunformatted_codeÚexpected_formatted_codeÚllinesr   r   r	   ÚtestDecorators    s    


z+BasicBlankLineCalculatorTest.testDecoratorsc                 C   s4   t  d¡}t  d¡}t |¡}|  |t |¡¡ d S )NzÊ        import sys
        @bork()

        def foo():
          pass
        @fork()

        class moo(object):
          @bar()
          @baz()

          def method(self):
            pass
        zÌ        import sys


        @bork()
        def foo():
          pass


        @fork()
        class moo(object):

          @bar()
          @baz()
          def method(self):
            pass
        r   r   r   r   r	   ÚtestComplexDecorators/   s    


z2BasicBlankLineCalculatorTest.testComplexDecoratorsc                 C   s4   t  d¡}t  d¡}t |¡}|  |t |¡¡ d S )Na>          def foo():
          pass
        top_level_code = True
        class moo(object):
          def method_1(self):
            pass
          ivar_a = 42
          ivar_b = 13
          def method_2(self):
            pass
        try:
          raise Error
        except Error as error:
          pass
        aG          def foo():
          pass


        top_level_code = True


        class moo(object):

          def method_1(self):
            pass

          ivar_a = 42
          ivar_b = 13

          def method_2(self):
            pass


        try:
          raise Error
        except Error as error:
          pass
        r   r   r   r   r	   Ú testCodeAfterFunctionsAndClassesS   s    


z=BasicBlankLineCalculatorTest.testCodeAfterFunctionsAndClassesc                 C   s4   t  d¡}t  d¡}t |¡}|  |t |¡¡ d S )Na2          # This is the first comment
        # And it's multiline

        # This is the second comment

        def foo():
          pass

        # multiline before a
        # class definition

        # This is the second comment

        class qux(object):
          pass


        # An attached comment.
        class bar(object):
          '''class docstring'''
          # Comment attached to
          # function
          def foo(self):
            '''Another docstring.'''
            # Another multiline
            # comment
            pass
        a6          # This is the first comment
        # And it's multiline

        # This is the second comment


        def foo():
          pass


        # multiline before a
        # class definition

        # This is the second comment


        class qux(object):
          pass


        # An attached comment.
        class bar(object):
          '''class docstring'''

          # Comment attached to
          # function
          def foo(self):
            '''Another docstring.'''
            # Another multiline
            # comment
            pass
        r   r   r   r   r	   ÚtestCommentSpacing€   s    

!
z/BasicBlankLineCalculatorTest.testCommentSpacingc                 C   s*   t  d¡}t |¡}|  |t |¡¡ d S )Nzu        class foo(object):

          # pylint: disable=invalid-name
          def f(self):
            pass
        r   ©r   Úcoder   r   r   r	   ÚtestCommentBeforeMethodÂ   s    

z4BasicBlankLineCalculatorTest.testCommentBeforeMethodc                 C   s*   t  d¡}t |¡}|  |t |¡¡ d S )Nz[        """Test."""

        # Comment


        class Foo(object):
          pass
        r   r   r   r   r	   ÚtestCommentsBeforeClassDefsÍ   s    
	
z8BasicBlankLineCalculatorTest.testCommentsBeforeClassDefsc                 C   sP   t  d¡}t |¡}|  |t |¡¡ t  d¡}t |¡}|  |t |¡¡ d S )Nze        # The @foo operator adds bork to a().
        @foo()
        def a():
          pass
        zO        # Hello world


        @foo()
        def a():
          pass
        r   r   r   r   r	   ÚtestCommentsBeforeDecoratorÚ   s    



z8BasicBlankLineCalculatorTest.testCommentsBeforeDecoratorc                 C   s*   t  d¡}t |¡}|  |t |¡¡ d S )Nap          class _():

          def _():
            pass

          @pytest.mark.xfail(reason="#709 and #710")
          # also
          #@pytest.mark.xfail(setuptools.tests.is_ascii,
          #    reason="https://github.com/pypa/setuptools/issues/706")
          def test_unicode_filename_in_sdist(self, sdist_unicode, tmpdir, monkeypatch):
            pass
        r   r   r   r   r	   ÚtestCommentsAfterDecoratorï   s    

z7BasicBlankLineCalculatorTest.testCommentsAfterDecoratorc                 C   s4   t  d¡}t  d¡}t |¡}|  |t |¡¡ d S )Nz·      class DeployAPIClient(object):
          class Error(Exception): pass

          class TaskValidationError(Error): pass

          class DeployAPIHTTPError(Error): pass
        zÐ      class DeployAPIClient(object):

        class Error(Exception):
          pass

        class TaskValidationError(Error):
          pass

        class DeployAPIHTTPError(Error):
          pass
        r   r   r   r   r	   ÚtestInnerClasses   s    


z-BasicBlankLineCalculatorTest.testInnerClassesc                 C   sD   t  d¡}t  d¡}tj|ddgd\}}|  ||¡ |  |¡ d S )Nz¿        def A():
          pass

        def B():  # 4
          pass  # 5

        def C():
          pass
        def D():  # 9
          pass  # 10
        def E():
          pass
        zÂ        def A():
          pass


        def B():  # 4
          pass  # 5

        def C():
          pass


        def D():  # 9
          pass  # 10
        def E():
          pass
        )é   é   )é	   é
   ©Úlines©r   r   r   Ú
FormatCoder   Ú
assertTrue©r   r   r   r   Úchangedr   r   r	   ÚtestLinesOnRangeBoundary  s    

ÿ
z5BasicBlankLineCalculatorTest.testLinesOnRangeBoundaryc                 C   sB   t  d¡}t  d¡}tj|dgd\}}|  ||¡ |  |¡ d S )Nzx        def A():
          pass



        def B():  # 6
          pass  # 7



        def C():
          pass
        )é   é   r#   )r   r   r   r&   r   ZassertFalser(   r   r   r	   Ú testLinesRangeBoundaryNotOutside=  s
    

z=BasicBlankLineCalculatorTest.testLinesRangeBoundaryNotOutsidec                 C   sB   t  d¡}t  d¡}tj|dgd\}}|  ||¡ |  |¡ d S )Nzy        def A():
          pass



        def B():  # 6
          pass  # 7




        def C():
          pass
        zx        def A():
          pass


        def B():  # 6
          pass  # 7




        def C():
          pass
        )r    r!   r#   r%   r(   r   r   r	   ÚtestLinesRangeRemove^  s
    

z1BasicBlankLineCalculatorTest.testLinesRangeRemovec                 C   sB   t  d¡}t  d¡}tj|dgd\}}|  ||¡ |  |¡ d S )Nzz        def A():
          pass




        def B():  # 7
          pass  # 8




        def C():
          pass
        zy        def A():
          pass



        def B():  # 7
          pass  # 8




        def C():
          pass
        )r+   r!   r#   r%   r(   r   r   r	   ÚtestLinesRangeRemoveSome€  s
    

z5BasicBlankLineCalculatorTest.testLinesRangeRemoveSomeN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr
   r   r   r   r   r   r   r   r   r   r*   r-   r.   r/   r   r   r   r	   r      s   
$-B%!"r   Ú__main__)Ú__doc__r   ZunittestZyapf.yapflibr   r   r   Z	yapftestsr   ZYAPFTestr   r0   Úmainr   r   r   r	   Ú<module>   s      