def test_create_w_labels(self): from google.cloud.spanner_v1 import CreateSessionRequest from google.cloud.spanner_v1 import Session as SessionPB labels = {"foo": "bar"} session_pb = self._make_session_pb(self.SESSION_NAME, labels=labels) gax_api = self._make_spanner_api() gax_api.create_session.return_value = session_pb database = self._make_database() database.spanner_api = gax_api session = self._make_one(database, labels=labels) session.create() self.assertEqual(session.session_id, self.SESSION_ID) request = CreateSessionRequest( database=database.name, session=SessionPB(labels=labels), ) gax_api.create_session.assert_called_once_with( request=request, metadata=[("google-cloud-resource-prefix", database.name)], ) self.assertSpanAttributes( "CloudSpanner.CreateSession", attributes=dict(TestSession.BASE_ATTRIBUTES, foo="bar"), )
def create(self): """Create this session, bound to its database. See https://cloud.google.com/spanner/reference/rpc/google.spanner.v1#google.spanner.v1.Spanner.CreateSession :raises ValueError: if :attr:`session_id` is already set. """ if self._session_id is not None: raise ValueError("Session ID already set by back-end") api = self._database.spanner_api metadata = _metadata_with_prefix(self._database.name) request = CreateSessionRequest(database=self._database.name) if self._labels: request.session.labels = self._labels with trace_call("CloudSpanner.CreateSession", self, self._labels): session_pb = api.create_session(request=request, metadata=metadata,) self._session_id = session_pb.name.split("/")[-1]
def test_create_ok(self): from google.cloud.spanner_v1 import CreateSessionRequest session_pb = self._make_session_pb(self.SESSION_NAME) gax_api = self._make_spanner_api() gax_api.create_session.return_value = session_pb database = self._make_database() database.spanner_api = gax_api session = self._make_one(database) session.create() self.assertEqual(session.session_id, self.SESSION_ID) request = CreateSessionRequest(database=database.name, ) gax_api.create_session.assert_called_once_with( request=request, metadata=[("google-cloud-resource-prefix", database.name)]) self.assertSpanAttributes("CloudSpanner.CreateSession", attributes=TestSession.BASE_ATTRIBUTES)