コード例 #1
0
    def test_dedent_block_continuation_in_string(self):

        code = r"""
    def f():
      a = "a \
  b"
      return a
    """

        f = self._eval_code(parser.dedent_block(code), 'f')
        self.assertEqual(f(), 'a   b')
コード例 #2
0
    def test_dedent_block_continuation(self):

        code = r"""
    def f():
      a = \
          1
      return a
    """

        f = self._eval_code(parser.dedent_block(code), 'f')
        self.assertEqual(f(), 1)
コード例 #3
0
    def test_dedent_block_multiline_expression(self):

        code = """
    def f():
      return (1,
2,
        3)
    """

        f = self._eval_code(parser.dedent_block(code), 'f')
        self.assertEqual(f(), (1, 2, 3))
コード例 #4
0
    def test_dedent_block_basic(self):

        code = """
    def f(x):
      if x > 0:
        return -x
      return x
    """

        f = self._eval_code(parser.dedent_block(code), 'f')
        self.assertEqual(f(1), -1)
        self.assertEqual(f(-1), -1)
コード例 #5
0
    def test_dedent_block_multiline_string(self):

        code = """
    def f():
      '''
      Docstring.
      '''
      return '''
  1
    2
      3'''
    """

        f = self._eval_code(parser.dedent_block(code), 'f')
        self.assertEqual(f.__doc__, '\n      Docstring.\n      ')
        self.assertEqual(f(), '\n  1\n    2\n      3')
コード例 #6
0
    def test_dedent_block_comments_out_of_line(self):

        code = """
  ###
    def f(x):
###
      if x > 0:
  ###
        return -x
          ###
  ###
      return x
      ###
    """

        f = self._eval_code(parser.dedent_block(code), 'f')
        self.assertEqual(f(1), -1)
        self.assertEqual(f(-1), -1)