Skip to content

Commit 8df8596

Browse files
committed
Adding umbrella datastore.set_defaults().
This will be the most common auth / setup path for typical users.
1 parent 0525530 commit 8df8596

File tree

11 files changed

+62
-21
lines changed

11 files changed

+62
-21
lines changed

README.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ with the Cloud Datastore using this Client Library.
6565
.. code:: python
6666
6767
from gcloud import datastore
68-
datastore.set_default_connection()
69-
datastore.set_default_dataset_id()
68+
datastore.set_defaults()
7069
# Then do other things...
7170
from gcloud.datastore.entity import Entity
7271
from gcloud.datastore.key import Key

docs/_components/datastore-getting-started.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ Add some data to your dataset
3838
Open a Python console and...
3939

4040
>>> from gcloud import datastore
41-
>>> datastore.set_default_connection()
42-
>>> datastore.set_default_dataset_id('<your-dataset-id>')
41+
>>> datastore.set_defaults()
4342
>>> from gcloud.datastore.query import Query
4443
>>> list(Query(kind='Person').fetch())
4544
[]

docs/index.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ Cloud Datastore
2929
.. code-block:: python
3030
3131
from gcloud import datastore
32-
datastore.set_default_connection()
33-
datastore.set_default_dataset_id('<dataset-id>')
32+
datastore.set_defaults()
3433
3534
from gcloud.datastore.entity import Entity
3635
from gcloud.datastore.key import Key

gcloud/datastore/__init__.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
>>> from gcloud.datastore.key import Key
2222
>>> from gcloud.datastore.query import Query
2323
24-
>>> datastore.set_default_connection()
25-
>>> datastore.set_default_dataset_id()
24+
>>> datastore.set_defaults()
2625
2726
>>> key = Key('EntityKind', 1234)
2827
>>> entity = Entity(key)
@@ -95,6 +94,26 @@ def set_default_connection(connection=None):
9594
_implicit_environ.CONNECTION = connection
9695

9796

97+
def set_defaults(dataset_id=None, connection=None):
98+
"""Set defaults either explicitly or implicitly as fall-back.
99+
100+
Uses the arguments to call the individual default methods
101+
- set_default_dataset_id
102+
- set_default_connection
103+
104+
In the future we will likely enable methods like
105+
- set_default_namespace
106+
107+
:type dataset_id: string
108+
:param dataset_id: Optional. The dataset ID to use as default.
109+
110+
:type connection: :class:`gcloud.datastore.connection.Connection`
111+
:param connection: A connection provided to be the default.
112+
"""
113+
set_default_dataset_id(dataset_id=dataset_id)
114+
set_default_connection(connection=connection)
115+
116+
98117
def get_connection():
99118
"""Shortcut method to establish a connection to the Cloud Datastore.
100119

gcloud/datastore/connection.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ def lookup(self, dataset_id, key_pbs,
170170
171171
>>> from gcloud import datastore
172172
>>> from gcloud.datastore.key import Key
173-
>>> datastore.set_default_connection()
173+
>>> datastore.set_defaults()
174174
>>> key = Key('MyKind', 1234, dataset_id='dataset-id')
175175
>>> datastore.get(key)
176176
<Entity object>
@@ -263,8 +263,7 @@ def run_query(self, dataset_id, query_pb, namespace=None, eventual=False):
263263
>>> from gcloud import datastore
264264
>>> from gcloud.datastore.query import Query
265265
266-
>>> datastore.set_default_connection()
267-
>>> datastore.set_default_dataset_id()
266+
>>> datastore.set_defaults()
268267
269268
>>> query = Query(kind='MyKind')
270269
>>> query.add_filter('property', '=', 'val')

gcloud/datastore/demo/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,4 @@
2323

2424

2525
def initialize():
26-
datastore.set_default_connection()
27-
datastore.set_default_dataset_id(DATASET_ID)
26+
datastore.set_defaults(dataset_id=DATASET_ID)

gcloud/datastore/test___init__.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,37 @@ def test_set_implicit(self):
116116
self.assertEqual(_implicit_environ.CONNECTION, fake_cnxn)
117117

118118

119+
class Test_set_defaults(unittest2.TestCase):
120+
121+
def _callFUT(self, dataset_id=None, connection=None):
122+
from gcloud.datastore import set_defaults
123+
return set_defaults(dataset_id=dataset_id, connection=connection)
124+
125+
def test_it(self):
126+
from gcloud._testing import _Monkey
127+
from gcloud import datastore
128+
129+
DATASET_ID = object()
130+
CONNECTION = object()
131+
132+
SET_DATASET_CALLED = []
133+
134+
def call_set_dataset(dataset_id=None):
135+
SET_DATASET_CALLED.append(dataset_id)
136+
137+
SET_CONNECTION_CALLED = []
138+
139+
def call_set_connection(connection=None):
140+
SET_CONNECTION_CALLED.append(connection)
141+
142+
with _Monkey(datastore, set_default_dataset_id=call_set_dataset,
143+
set_default_connection=call_set_connection):
144+
self._callFUT(dataset_id=DATASET_ID, connection=CONNECTION)
145+
146+
self.assertEqual(SET_DATASET_CALLED, [DATASET_ID])
147+
self.assertEqual(SET_CONNECTION_CALLED, [CONNECTION])
148+
149+
119150
class Test_get_connection(unittest2.TestCase):
120151

121152
def _callFUT(self):

gcloud/datastore/transaction.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ class Transaction(Batch):
3030
>>> from gcloud import datastore
3131
>>> from gcloud.datastore.transaction import Transaction
3232
33-
>>> datastore.set_default_connection()
34-
>>> datastore.set_default_dataset_id()
33+
>>> datastore.set_defaults()
3534
3635
>>> with Transaction()
3736
... entity1.save()

regression/clear_datastore.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323

2424

2525
datastore._DATASET_ENV_VAR_NAME = 'GCLOUD_TESTS_DATASET_ID'
26-
datastore.set_default_dataset_id()
27-
datastore.set_default_connection()
26+
datastore.set_defaults()
2827

2928

3029
FETCH_MAX = 20

regression/datastore.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@
2727

2828

2929
datastore._DATASET_ENV_VAR_NAME = 'GCLOUD_TESTS_DATASET_ID'
30-
datastore.set_default_dataset_id()
31-
datastore.set_default_connection()
30+
datastore.set_defaults()
3231

3332

3433
class TestDatastore(unittest2.TestCase):

0 commit comments

Comments
 (0)