File tree Expand file tree Collapse file tree 5 files changed +35
-36
lines changed
Expand file tree Collapse file tree 5 files changed +35
-36
lines changed Original file line number Diff line number Diff line change 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]
1716from 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.
3321def ndb_django_middleware (get_response ):
3422 client = ndb .Client ()
3523
Original file line number Diff line number Diff line change 1414
1515from 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
3120def 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 )
Original file line number Diff line number Diff line change 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]
1816from flask import Flask
19- # [END ndb_flask_middleware_usage]
17+
2018from 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
2332app = Flask (__name__ )
2433app .wsgi_app = ndb_wsgi_middleware (app .wsgi_app ) # Wrap the app in middleware.
25- # [END ndb_flask_middleware_usage]
2634
2735
2836class Book (ndb .Model ):
2937 title = ndb .StringProperty ()
3038
3139
32- client = ndb .Client ()
33-
34-
3540@app .route ('/' )
3641def list_books ():
3742 books = Book .query ()
3843 return str ([book .to_dict () for book in books ])
44+ # [END ndb_flask]
Original file line number Diff line number Diff line change 1616
1717import pytest
1818
19+ from google .cloud import ndb
20+
1921import 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 )
Original file line number Diff line number Diff line change 1+ #[START ndb_version]
12google-cloud-ndb == 0.0.1
3+ #[END ndb_version]
24flask == 1.0.2
You can’t perform that action at this time.
0 commit comments