From 7c67047e77914dfe0d6666e4dc535c684aa77090 Mon Sep 17 00:00:00 2001 From: Konstantin Lopuhin Date: Thu, 1 Sep 2016 18:35:57 +0300 Subject: [PATCH] Fix get_func_args tests under PyPy On CPython get_func_args does not work correctly for built-in methods. --- tests/test_utils_python.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/test_utils_python.py b/tests/test_utils_python.py index e22bd8eb6..8becca0f1 100644 --- a/tests/test_utils_python.py +++ b/tests/test_utils_python.py @@ -3,6 +3,7 @@ import functools import operator import unittest from itertools import count +import platform import six from scrapy.utils.python import ( @@ -212,10 +213,16 @@ class UtilsPythonTestCase(unittest.TestCase): self.assertEqual(get_func_args(cal), ['a', 'b', 'c']) self.assertEqual(get_func_args(object), []) - # TODO: how do we fix this to return the actual argument names? - self.assertEqual(get_func_args(six.text_type.split), []) - self.assertEqual(get_func_args(" ".join), []) - self.assertEqual(get_func_args(operator.itemgetter(2)), []) + if platform.python_implementation() == 'CPython': + # TODO: how do we fix this to return the actual argument names? + self.assertEqual(get_func_args(six.text_type.split), []) + self.assertEqual(get_func_args(" ".join), []) + self.assertEqual(get_func_args(operator.itemgetter(2)), []) + else: + self.assertEqual(get_func_args(six.text_type.split), ['sep', 'maxsplit']) + self.assertEqual(get_func_args(" ".join), ['list']) + self.assertEqual(get_func_args(operator.itemgetter(2)), ['obj']) + def test_without_none_values(self): self.assertEqual(without_none_values([1, None, 3, 4]), [1, 3, 4])