Skip to content

Commit

Permalink
Fix test_gast_with_compatibility.py due to the problem of gast in pyt…
Browse files Browse the repository at this point in the history
…hon3.8 (PaddlePaddle#27433)

test=develop
  • Loading branch information
gfwm2013 authored Sep 21, 2020
1 parent 13a4c74 commit 3fe176d
Showing 1 changed file with 55 additions and 41 deletions.
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

0 comments on commit 3fe176d

Please sign in to comment.