
    ?d#                         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ej                        Z
ed	k(  r ej                          yy)
z%Tests for yapf.blank_line_calculator.    N)reformatter)style)yapf_api)yapf_test_helperc                   j    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zy)BasicBlankLineCalculatorTestc                 R    t        j                  t        j                                y )N)r   SetGlobalStyleCreateYapfStyle)clss    F/usr/lib/python3/dist-packages/yapftests/blank_line_calculator_test.py
setUpClassz'BasicBlankLineCalculatorTest.setUpClass   s    	..01    c                     t        j                  d      }t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )Nz;        @bork()

        def foo():
          pass
        z:        @bork()
        def foo():
          pass
        textwrapdedentr   ParseAndUnwrapassertCodeEqualr   Reformatselfunformatted_codeexpected_formatted_codelliness       r   testDecoratorsz+BasicBlankLineCalculatorTest.testDecorators    s[     (  'oo / 
 ,,-=>F0+2F2Fv2NOr   c                     t        j                  d      }t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )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   s       r   testComplexDecoratorsz2BasicBlankLineCalculatorTest.testComplexDecorators/   s[     (  'oo / " ,,-=>F0+2F2Fv2NOr   c                     t        j                  d      }t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )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   s       r    testCodeAfterFunctionsAndClassesz=BasicBlankLineCalculatorTest.testCodeAfterFunctionsAndClassesS   s[     (   'oo / 2 ,,-=>F0+2F2Fv2NOr   c                     t        j                  d      }t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )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   s       r   testCommentSpacingz/BasicBlankLineCalculatorTest.testCommentSpacing   s\     ( : 'oo  /  B ,,-=>F0+2F2Fv2NOr   c                     t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )Nzu        class foo(object):

          # pylint: disable=invalid-name
          def f(self):
            pass
        r   r   coder   s      r   testCommentBeforeMethodz4BasicBlankLineCalculatorTest.testCommentBeforeMethod   sB    ??  D ,,T2F{33F;<r   c                     t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )Nz[        """Test."""

        # Comment


        class Foo(object):
          pass
        r   r$   s      r   testCommentsBeforeClassDefsz8BasicBlankLineCalculatorTest.testCommentsBeforeClassDefs   sB    ??  D ,,T2F{33F;<r   c                 @   t        j                  d      }t        j                  |      }| j	                  |t        j                  |             t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )Nze        # The @foo operator adds bork to a().
        @foo()
        def a():
          pass
        zO        # Hello world


        @foo()
        def a():
          pass
        r   r$   s      r   testCommentsBeforeDecoratorz8BasicBlankLineCalculatorTest.testCommentsBeforeDecorator   s    ??  D ,,T2F{33F;<??  D ,,T2F{33F;<r   c                     t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )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$   s      r   testCommentsAfterDecoratorz7BasicBlankLineCalculatorTest.testCommentsAfterDecorator   sB    ??  D ,,T2F{33F;<r   c                     t        j                  d      }t        j                  d      }t        j                  |      }| j	                  |t        j                  |             y )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   s       r   testInnerClassesz-BasicBlankLineCalculatorTest.testInnerClasses   s[     (  'oo /  ,,-=>F0+2F2Fv2NOr   c                     t        j                  d      }t        j                  d      }t        j                  |ddg      \  }}| j	                  ||       | j                  |       y )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%   changeds        r   testLinesOnRangeBoundaryz5BasicBlankLineCalculatorTest.testLinesOnRangeBoundary  si     (  'oo / " '' 13MD'0$7OOGr   c                     t        j                  d      }t        j                  d      }t        j                  |dg      \  }}| j	                  ||       | j                  |       y )Nzx        def A():
          pass



        def B():  # 6
          pass  # 7



        def C():
          pass
        )      r4   )r   r   r   r7   r   assertFalser9   s        r    testLinesRangeBoundaryNotOutsidez=BasicBlankLineCalculatorTest.testLinesRangeBoundaryNotOutside=  sf     (  'oo /  ''(8IMD'0$7Wr   c                     t        j                  d      }t        j                  d      }t        j                  |dg      \  }}| j	                  ||       | j                  |       y )Nzy        def A():
          pass



        def B():  # 6
          pass  # 7




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


        def B():  # 6
          pass  # 7




        def C():
          pass
        )r1   r2   r4   r6   r9   s        r   testLinesRangeRemovez1BasicBlankLineCalculatorTest.testLinesRangeRemove^  sd     (  'oo /  ''(8IMD'0$7OOGr   c                     t        j                  d      }t        j                  d      }t        j                  |dg      \  }}| j	                  ||       | j                  |       y )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=   r2   r4   r6   r9   s        r   testLinesRangeRemoveSomez5BasicBlankLineCalculatorTest.testLinesRangeRemoveSome  sd     (   'oo /  ''(8IMD'0$7OOGr   N)__name__
__module____qualname__classmethodr   r   r   r    r"   r&   r(   r*   r,   r.   r;   r@   rB   rD    r   r   r   r      sa    2 2P"PH+PZ@PD	===*="P0#JB D"r   r   __main__)__doc__r   unittestyapf.yapflibr   r   r   	yapftestsr   YAPFTestr   rE   mainrI   r   r   <module>rQ      sL    ,   $  ! &H#3#<#< HV z(--/ r   