Skip to content

Commit b0fd453

Browse files
andrewsgkurtisvg
authored andcommitted
Update NDB samples to consolidate tags (GoogleCloudPlatform#2387)
1 parent 931dd95 commit b0fd453

File tree

5 files changed

+35
-36
lines changed

5 files changed

+35
-36
lines changed
Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,12 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# [START ndb_wsgi_middleware]
1615
# [START ndb_django_middleware]
1716
from google.cloud import ndb
1817

1918

20-
# [END ndb_django_middleware]
21-
def ndb_wsgi_middleware(wsgi_app):
22-
client = ndb.Client()
23-
24-
def middleware(environ, start_response):
25-
with client.context():
26-
return wsgi_app(environ, start_response)
27-
28-
return middleware
29-
# [END ndb_wsgi_middleware]
30-
31-
32-
# [START ndb_django_middleware]
19+
# Once this middleware is activated in Django settings, NDB calls inside Django
20+
# views will be executed in context, with a separate context for each request.
3321
def ndb_django_middleware(get_response):
3422
client = ndb.Client()
3523

datastore/cloud-ndb/middleware_test.py renamed to datastore/cloud-ndb/django_middleware_test.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,7 @@
1414

1515
from google.cloud import ndb
1616

17-
import middleware
18-
19-
20-
def test_ndb_wsgi_middleware():
21-
def fake_wsgi_app(environ, start_response):
22-
# Validate that a context is live. This will throw
23-
# ndb.exceptions.ContextError if no context is set up.
24-
ndb.context.get_context()
25-
26-
wrapped_function = middleware.ndb_wsgi_middleware(fake_wsgi_app)
27-
28-
wrapped_function(None, None)
17+
import django_middleware
2918

3019

3120
def test_ndb_django_middleware():
@@ -34,6 +23,7 @@ def fake_get_response(request):
3423
# ndb.exceptions.ContextError if no context is set up.
3524
ndb.context.get_context()
3625

37-
wrapped_function = middleware.ndb_django_middleware(fake_get_response)
26+
wrapped_function = django_middleware.ndb_django_middleware(
27+
fake_get_response)
3828

3929
wrapped_function(None)

datastore/cloud-ndb/flask_app.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,33 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from middleware import ndb_wsgi_middleware
16-
17-
# [START ndb_flask_middleware_usage]
15+
# [START ndb_flask]
1816
from flask import Flask
19-
# [END ndb_flask_middleware_usage]
17+
2018
from google.cloud import ndb
21-
# [START ndb_flask_middleware_usage]
19+
20+
21+
client = ndb.Client()
22+
23+
24+
def ndb_wsgi_middleware(wsgi_app):
25+
def middleware(environ, start_response):
26+
with client.context():
27+
return wsgi_app(environ, start_response)
28+
29+
return middleware
30+
2231

2332
app = Flask(__name__)
2433
app.wsgi_app = ndb_wsgi_middleware(app.wsgi_app) # Wrap the app in middleware.
25-
# [END ndb_flask_middleware_usage]
2634

2735

2836
class Book(ndb.Model):
2937
title = ndb.StringProperty()
3038

3139

32-
client = ndb.Client()
33-
34-
3540
@app.route('/')
3641
def list_books():
3742
books = Book.query()
3843
return str([book.to_dict() for book in books])
44+
# [END ndb_flask]

datastore/cloud-ndb/flask_app_test.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
import pytest
1818

19+
from google.cloud import ndb
20+
1921
import flask_app
2022

2123

@@ -40,3 +42,14 @@ def test_index(test_book):
4042
r = client.get('/')
4143
assert r.status_code == 200
4244
assert test_book.title in r.data.decode('utf-8')
45+
46+
47+
def test_ndb_wsgi_middleware():
48+
def fake_wsgi_app(environ, start_response):
49+
# Validate that a context is live. This will throw
50+
# ndb.exceptions.ContextError if no context is set up.
51+
ndb.context.get_context()
52+
53+
wrapped_function = flask_app.ndb_wsgi_middleware(fake_wsgi_app)
54+
55+
wrapped_function(None, None)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
#[START ndb_version]
12
google-cloud-ndb==0.0.1
3+
#[END ndb_version]
24
flask==1.0.2

0 commit comments

Comments
 (0)