Пример #1
0
    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"),
        )
Пример #2
0
    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]
Пример #3
0
    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)