-
Notifications
You must be signed in to change notification settings - Fork 167
Closed
Labels
api: storageIssues related to the googleapis/python-storage API.Issues related to the googleapis/python-storage API.type: processA process-related concern. May include testing, release, or the like.A process-related concern. May include testing, release, or the like.
Description
PR #520 added passing page_size to the google.api_core.page_iterator.HTTPIterator constructor, which is a feature added only in google-api-core 1.29.0. testing/constraints-3.6.txt pins google-cloud-core==1.6.0, the minimum version specified in setup.py, but does not pin google-api-core, which results in:
$ git remote -v
origin git@github.com:googleapis/python-storage (fetch)
origin git@github.com:googleapis/python-storage (push)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
$ git log -1
commit 4abb40310eca7ec45afc4bc5e4dfafbe083e74d2 (HEAD -> master, origin/master, origin/HEAD)
Author: Tres Seaver <tseaver@palladion.com>
Date: Tue Jul 27 13:43:42 2021 -0400
fix: make 'requests.exceptions.ChunkedEncodingError retryable by default (#526)
Closes #525.
$ .nox/unit-3-6/bin/pip list | grep google
google-api-core 1.27.0
google-auth 1.24.0
google-cloud-core 1.6.0
google-cloud-storage 1.41.1 /path/to/python-storage
google-crc32c 1.1.2
google-resumable-media 1.3.0
googleapis-common-protos 1.53.0
$ nox -re unit-3.6
nox > Running session unit-3.6
nox > Creating virtual environment (virtualenv) using python3.6 in .nox/unit-3-6
nox > python -m pip install mock pytest pytest-cov -c /home/tseaver/projects/agendaless/Google/src/python-storage/testing/constraints-3.6.txt
nox > python -m pip install -e . -c /home/tseaver/projects/agendaless/Google/src/python-storage/testing/constraints-3.6.txt
nox > py.test --quiet --cov=google.cloud.storage --cov=google.cloud --cov=tests.unit --cov-append --cov-config=.coveragerc --cov-report= --cov-fail-under=0 tests/unit
..............................................s......................... [ 6%]
........................................................................ [ 13%]
........................................................................ [ 20%]
........................................................................ [ 27%]
........................................................................ [ 34%]
........................................................................ [ 41%]
........................................................................ [ 48%]
........................................................................ [ 55%]
........................................................................ [ 62%]
........................................................................ [ 69%]
........................................................................ [ 76%]
.........................FF............................................. [ 83%]
........................................................................ [ 90%]
........................................................................ [ 97%]
..................... [100%]Coverage.py warning: Module google.cloud was previously imported, but not measured (module-not-measured)
=================================== FAILURES ===================================
__________________ TestClient.test__list_resource_w_defaults ___________________
self = <tests.unit.test_client.TestClient testMethod=test__list_resource_w_defaults>
def test__list_resource_w_defaults(self):
import functools
from google.api_core.page_iterator import HTTPIterator
from google.api_core.page_iterator import _do_nothing_page_start
project = "PROJECT"
path = "/path/to/list/resource"
item_to_value = mock.Mock(spec=[])
credentials = _make_credentials()
client = self._make_one(project=project, credentials=credentials)
connection = client._base_connection = _make_connection()
> iterator = client._list_resource(path=path, item_to_value=item_to_value,)
tests/unit/test_client.py:485:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <google.cloud.storage.client.Client object at 0x7efcfb9f3b38>
path = '/path/to/list/resource', item_to_value = <Mock id='139625018221344'>
page_token = None, max_results = None, extra_params = None
page_start = <function _do_nothing_page_start at 0x7efcfc69fae8>
page_size = None, timeout = 60
retry = <google.api_core.retry.Retry object at 0x7efcfc756c50>
def _list_resource(
self,
path,
item_to_value,
page_token=None,
max_results=None,
extra_params=None,
page_start=page_iterator._do_nothing_page_start,
page_size=None,
timeout=_DEFAULT_TIMEOUT,
retry=DEFAULT_RETRY,
):
api_request = functools.partial(
self._connection.api_request, timeout=timeout, retry=retry
)
return page_iterator.HTTPIterator(
client=self,
api_request=api_request,
path=path,
item_to_value=item_to_value,
page_token=page_token,
max_results=max_results,
extra_params=extra_params,
page_start=page_start,
> page_size=page_size,
)
E TypeError: __init__() got an unexpected keyword argument 'page_size'
google/cloud/storage/client.py:403: TypeError
__________________ TestClient.test__list_resource_w_explicit ___________________
self = <tests.unit.test_client.TestClient testMethod=test__list_resource_w_explicit>
def test__list_resource_w_explicit(self):
import functools
from google.api_core.page_iterator import HTTPIterator
project = "PROJECT"
path = "/path/to/list/resource"
item_to_value = mock.Mock(spec=[])
page_token = "PAGE-TOKEN"
max_results = 47
extra_params = {"foo": "Foo"}
page_start = mock.Mock(spec=[])
credentials = _make_credentials()
client = self._make_one(project=project, credentials=credentials)
connection = client._base_connection = _make_connection()
iterator = client._list_resource(
path=path,
item_to_value=item_to_value,
page_token=page_token,
max_results=max_results,
extra_params=extra_params,
> page_start=page_start,
)
tests/unit/test_client.py:523:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <google.cloud.storage.client.Client object at 0x7efcfbdfe470>
path = '/path/to/list/resource', item_to_value = <Mock id='139625022614160'>
page_token = 'PAGE-TOKEN', max_results = 47, extra_params = {'foo': 'Foo'}
page_start = <Mock id='139625022612368'>, page_size = None, timeout = 60
retry = <google.api_core.retry.Retry object at 0x7efcfc756c50>
def _list_resource(
self,
path,
item_to_value,
page_token=None,
max_results=None,
extra_params=None,
page_start=page_iterator._do_nothing_page_start,
page_size=None,
timeout=_DEFAULT_TIMEOUT,
retry=DEFAULT_RETRY,
):
api_request = functools.partial(
self._connection.api_request, timeout=timeout, retry=retry
)
return page_iterator.HTTPIterator(
client=self,
api_request=api_request,
path=path,
item_to_value=item_to_value,
page_token=page_token,
max_results=max_results,
extra_params=extra_params,
page_start=page_start,
> page_size=page_size,
)
E TypeError: __init__() got an unexpected keyword argument 'page_size'
google/cloud/storage/client.py:403: TypeError
=========================== short test summary info ============================
FAILED tests/unit/test_client.py::TestClient::test__list_resource_w_defaults
FAILED tests/unit/test_client.py::TestClient::test__list_resource_w_explicit
2 failed, 1026 passed, 1 skipped in 19.16s
nox > Command py.test --quiet --cov=google.cloud.storage --cov=google.cloud --cov=tests.unit --cov-append --cov-config=.coveragerc --cov-report= --cov-fail-under=0 tests/unit failed with exit code 1
nox > Session unit-3.6 failed.The fix would be to add ranges for google-api-core and google-auth (another transitive dependency) to setup.py, and then pin the minimum versions for those ranges in testing/constraints-3.6.txt.
Metadata
Metadata
Assignees
Labels
api: storageIssues related to the googleapis/python-storage API.Issues related to the googleapis/python-storage API.type: processA process-related concern. May include testing, release, or the like.A process-related concern. May include testing, release, or the like.