diff --git a/apitools/base/protorpclite/util.py b/apitools/base/protorpclite/util.py index bf4abf7..c996312 100644 --- a/apitools/base/protorpclite/util.py +++ b/apitools/base/protorpclite/util.py @@ -148,7 +148,7 @@ def positional_wrapper(*args, **kwargs): if isinstance(max_positional_args, six.integer_types): return positional_decorator else: - args, _, _, defaults = inspect.getargspec(max_positional_args) + args, _, _, defaults, *_ = inspect.getfullargspec(max_positional_args) if defaults is None: raise ValueError( 'Functions with no keyword arguments must specify ' diff --git a/samples/uptodate_check_test.py b/samples/uptodate_check_test.py index 8ca258e..6e8c9fb 100644 --- a/samples/uptodate_check_test.py +++ b/samples/uptodate_check_test.py @@ -59,10 +59,6 @@ def _CheckGeneratedFiles(self, api_name, api_version): prefix + '_messages.py', '__init__.py'])) self.assertEquals(expected_files, set(os.listdir(tmp_dir_path))) - if six.PY3: - # The source files won't be identical under python3, - # so we exit early. - return for expected_file in expected_files: self.AssertDiffEqual( _GetContent(GetSampleClientPath( diff --git a/tox.ini b/tox.ini index 09d2afc..29a9251 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,10 @@ [tox] envlist = - py27-oauth2client{1,2,3,4} - py35-oauth2client{1,2,3,4} + py311-oauth2client{1,2,3,4} [testenv] deps = - nose + nose-py3 python-gflags oauth2client1: oauth2client<1.5dev oauth2client2: oauth2client>=2,<=3dev @@ -18,7 +17,7 @@ passenv = TRAVIS* [testenv:lint] basepython = - python2.7 + python3.11 commands = pip install six google-apitools pycodestyle apitools @@ -28,7 +27,7 @@ deps = [testenv:cover] basepython = - python2.7 + python3.11 commands = nosetests --with-xunit --with-xcoverage --cover-package=apitools --nocapture --cover-erase --cover-tests --cover-branches [] deps = @@ -49,7 +48,7 @@ deps = [testenv:transfer_coverage] basepython = - python2.7 + python3.11 deps = mock nose