Skip to content

Commit 6746bcb

Browse files
committed
Fix test breakage: dictionary changed size during iteration
1 parent 952e9e6 commit 6746bcb

2 files changed

Lines changed: 12 additions & 12 deletions

File tree

src/google/appengine/runtime/context/gae_headers.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,24 @@
2020

2121
PREFIX = 'HTTP_X_APPENGINE_'
2222

23-
AUTH_DOMAIN = contextvars.ContextVar('AUTH_DOMAIN')
23+
AUTH_DOMAIN = contextvars.ContextVar('AUTH_DOMAIN', default='gmail.com')
2424
DEFAULT_VERSION_HOSTNAME = contextvars.ContextVar('DEFAULT_VERSION_HOSTNAME')
2525
USER_EMAIL = contextvars.ContextVar('USER_EMAIL')
2626
USER_ID = contextvars.ContextVar('USER_ID')
27-
USER_IS_ADMIN = contextvars.ContextVar('USER_IS_ADMIN')
27+
USER_IS_ADMIN = contextvars.ContextVar('USER_IS_ADMIN', default=False)
2828
USER_NICKNAME = contextvars.ContextVar('USER_NICKNAME')
2929
DEFAULT_NAMESPACE = contextvars.ContextVar('DEFAULT_NAMESPACE')
3030
API_TICKET = contextvars.ContextVar('API_TICKET')
31-
DEV_REQUEST_ID = contextvars.ContextVar('DEV_REQUEST_ID')
32-
REQUEST_LOG_ID = contextvars.ContextVar('REQUEST_LOG_ID')
31+
DEV_REQUEST_ID = contextvars.ContextVar('DEV_REQUEST_ID', default=None)
32+
REQUEST_LOG_ID = contextvars.ContextVar('REQUEST_LOG_ID', default=None)
3333

3434

3535
def init_from_wsgi_environ(
3636
wsgi_env) -> Dict[contextvars.ContextVar, contextvars.Token]:
3737
"""Init contextvars from matching X_APPENGINE_ headers if found."""
3838

3939
reset_tokens: Dict[contextvars.ContextVar, contextvars.Token] = {}
40-
for ctxvar in [v for _, v in globals().items()
40+
for ctxvar in [v for _, v in globals().copy().items()
4141
if isinstance(v, contextvars.ContextVar)]:
4242
value = wsgi_env.get(PREFIX + ctxvar.name)
4343
if value is not None:

src/google/appengine/runtime/context/wsgi.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@
1919
import contextvars
2020
from typing import Dict
2121

22-
HTTP_HOST = contextvars.ContextVar('HTTP_HOST')
23-
HTTP_USER_AGENT = contextvars.ContextVar('HTTP_USER_AGENT')
22+
HTTP_HOST = contextvars.ContextVar('HTTP_HOST', default=None)
23+
HTTP_USER_AGENT = contextvars.ContextVar('HTTP_USER_AGENT', default=None)
2424

2525
HTTP_X_CLOUD_TRACE_CONTEXT = contextvars.ContextVar(
26-
'HTTP_X_CLOUD_TRACE_CONTEXT')
26+
'HTTP_X_CLOUD_TRACE_CONTEXT', default=None)
2727

2828
HTTP_X_GOOGLE_DAPPERTRACEINFO = contextvars.ContextVar(
29-
'HTTP_X_GOOGLE_DAPPERTRACEINFO')
29+
'HTTP_X_GOOGLE_DAPPERTRACEINFO', default=None)
3030

3131

3232
PATH_INFO = contextvars.ContextVar('PATH_INFO')
33-
PATH_TRANSLATED = contextvars.ContextVar('PATH_TRANSLATED')
34-
QUERY_STRING = contextvars.ContextVar('QUERY_STRING')
33+
PATH_TRANSLATED = contextvars.ContextVar('PATH_TRANSLATED', default=None)
34+
QUERY_STRING = contextvars.ContextVar('QUERY_STRING', default=None)
3535
SERVER_NAME = contextvars.ContextVar('SERVER_NAME')
3636
SERVER_PORT = contextvars.ContextVar('SERVER_PORT')
3737
SERVER_PROTOCOL = contextvars.ContextVar('SERVER_PROTOCOL')
@@ -40,7 +40,7 @@
4040
def init_from_wsgi_environ(
4141
wsgi_env) -> Dict[contextvars.ContextVar, contextvars.Token]:
4242
reset_tokens: Dict[contextvars.ContextVar, contextvars.Token] = {}
43-
for ctxvar in [v for _, v in globals().items()
43+
for ctxvar in [v for _, v in globals().copy().items()
4444
if isinstance(v, contextvars.ContextVar)]:
4545
if ctxvar.name in wsgi_env:
4646
token = ctxvar.set(wsgi_env[ctxvar.name])

0 commit comments

Comments
 (0)