Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 55 additions & 41 deletions python/paddle/fluid/tests/unittests/test_gast_with_compatibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import ast
import gast
import sys
import textwrap
import unittest

Expand Down Expand Up @@ -143,47 +144,60 @@ def foo(x_new, y_new):
"""
self._check_compatibility(source, target)

def test_with(self):
"""
The fileds `context_expr/optional_vars` of `ast.With` in PY2
is moved into `ast.With.items.withitem` in PY3.
"""
source = """
with guard():
a = 1
"""
target = """
with guard_new():
a = 1
"""
self._check_compatibility(source, target)

def test_subscript_Index(self):
source = """
x = y()[10]
"""
target = """
x = y()[20]
"""
self._check_compatibility(source, target)

def test_subscript_Slice(self):
source = """
x = y()[10:20]
"""
target = """
x = y()[20:40]
"""
self._check_compatibility(source, target)

def test_call(self):
source = """
y = foo(*arg)
"""
target = """
y = foo(*arg_new)
"""
self._check_compatibility(source, target)
# The 0.3.3 version of gast has a bug in python3.8 that
# would cause the following tests to fail. But this
# problem doesn't affect the use of Paddle's related
# functions, therefore, the following tests would be
# disable in python3.8.
#
# This problem had been fixed and updated to version
# 0.4.1 of gast.
#
# More information please refer to:
# https://github.com/serge-sans-paille/gast/issues/49
if sys.version_info < (3, 8):

def test_with(self):
"""
The fileds `context_expr/optional_vars` of `ast.With` in PY2
is moved into `ast.With.items.withitem` in PY3.
"""
source = """
with guard():
a = 1
"""
target = """
with guard_new():
a = 1
"""
self._check_compatibility(source, target)

def test_subscript_Index(self):
source = """
x = y()[10]
"""
target = """
x = y()[20]
"""
self._check_compatibility(source, target)

def test_subscript_Slice(self):
source = """
x = y()[10:20]
"""
target = """
x = y()[20:40]
"""
self._check_compatibility(source, target)

def test_call(self):
source = """
y = foo(*arg)
"""
target = """
y = foo(*arg_new)
"""
self._check_compatibility(source, target)


if __name__ == '__main__':
Expand Down