Fit the StopIteration for py37

In Train we will switch to use py37 for tests.
There is a breaking change between Python 3.6 and 3.7
that is making it an error to raise a StopIteration exception
from a function or generator(https://www.python.org/dev/peps/pep-0479/).
So we need to fix it in code.

Change-Id: I003be4193944bc4176768c488f2f71b58fcbd58d
Closes-Bug: #1837856
Story: #2005924
Task: #34258
This commit is contained in:
wanghao 2019-07-25 16:58:28 +08:00
parent 0a5f0ed5d9
commit b63d025135
4 changed files with 14 additions and 9 deletions

View File

@ -112,7 +112,7 @@
- check-requirements - check-requirements
- openstack-lower-constraints-jobs - openstack-lower-constraints-jobs
- openstack-python-jobs - openstack-python-jobs
- openstack-python36-jobs - openstack-python3-train-jobs
- periodic-stable-jobs - periodic-stable-jobs
- publish-openstack-docs-pti - publish-openstack-docs-pti
- release-notes-jobs-python3 - release-notes-jobs-python3

View File

@ -15,7 +15,9 @@ classifier =
Programming Language :: Python Programming Language :: Python
Programming Language :: Python :: 2 Programming Language :: Python :: 2
Programming Language :: Python :: 2.7 Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
[files] [files]
packages = packages =

View File

@ -1,6 +1,6 @@
[tox] [tox]
minversion = 2.0 minversion = 2.0
envlist = py36,py27,pep8 envlist = py27,py37,pep8
skipsdist = True skipsdist = True
[testenv] [testenv]

View File

@ -38,15 +38,18 @@ LOG = logging.getLogger(__name__)
def _messages_iter(msg_iter): def _messages_iter(msg_iter):
"""Used to iterate through messages.""" """Used to iterate through messages."""
msg = next(msg_iter) try:
yield msg.pop('claim') msg = next(msg_iter)
yield msg yield msg.pop('claim')
# Smoke it!
for msg in msg_iter:
del msg['claim']
yield msg yield msg
# Smoke it!
for msg in msg_iter:
del msg['claim']
yield msg
except StopIteration:
return
class ClaimController(storage.Claim): class ClaimController(storage.Claim):
"""Implements claim resource operations using MongoDB. """Implements claim resource operations using MongoDB.