feat: inspect tools from Toolbox UI - #887
Merged
Merged
Google Cloud Build / integration-test-pr (toolbox-testing-438616)
succeeded
Jul 19, 2025 in 3m 0s
Summary
Build Information
| Trigger | integration-test-pr |
| Build | f9aa104b-5d9a-45d1-aa94-57f6d66aa2bb |
| Start | 2025-07-18T23:06:18-07:00 |
| Duration | 2m15.327s |
| Status | SUCCESS |
Steps
| Step | Status | Duration |
|---|---|---|
| install-dependencies | SUCCESS | 13.473s |
| compile-test-binary | SUCCESS | 45.459s |
| cloud-sql-pg | SUCCESS | 19.176s |
| alloydb-pg | SUCCESS | 20.619s |
| alloydb-ai-nl | SUCCESS | 7.682s |
| bigtable | SUCCESS | 12.837s |
| bigquery | SUCCESS | 35.734s |
| postgres | SUCCESS | 6.199s |
| spanner | SUCCESS | 1m11.821s |
| neo4j | SUCCESS | 4.049s |
| cloud-sql-mssql | SUCCESS | 5.847s |
| cloud-sql-mysql | SUCCESS | 5.191s |
| mysql | SUCCESS | 4.522s |
| mssql | SUCCESS | 5.745s |
| dgraph | SUCCESS | 3.826s |
| http | SUCCESS | 3.936s |
| sqlite | SUCCESS | 3.528s |
| couchbase | SUCCESS | 27.076s |
| redis | SUCCESS | 4.348s |
| valkey | SUCCESS | 4.148s |
Details
starting build "f9aa104b-5d9a-45d1-aa94-57f6d66aa2bb"
FETCHSOURCE
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /workspace/.git/
From https://github.com/googleapis/genai-toolbox
* branch 74171737db0cb45ab2af5f07e22830b7d91221a6 -> FETCH_HEAD
HEAD is now at 7417173 resolve comments
GitCommit:
74171737db0cb45ab2af5f07e22830b7d91221a6
SETUPBUILD
BUILD
Starting Step #0 - "install-dependencies"
Step #0 - "install-dependencies": Pulling image: golang:1
Step #0 - "install-dependencies": 1: Pulling from library/golang
Step #0 - "install-dependencies": Digest: sha256:14fd8a55e59a560704e5fc44970b301d00d344e45d6b914dda228e09f359a088
Step #0 - "install-dependencies": Status: Downloaded newer image for golang:1
Step #0 - "install-dependencies": docker.io/library/golang:1
Step #0 - "install-dependencies": go: -d flag is deprecated. -d=true is a no-op
Step #0 - "install-dependencies": go: downloading google.golang.org/api v0.240.0
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-yaml v1.18.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgx/v5 v5.7.5
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigquery v1.69.0
Step #0 - "install-dependencies": go: downloading github.com/fsnotify/fsnotify v1.9.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigtable v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocb/v2 v2.10.0
Step #0 - "install-dependencies": go: downloading github.com/neo4j/neo4j-go-driver/v5 v5.28.1
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/cloudsqlconn v1.17.2
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydbconn v1.15.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/trace v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/redis/go-redis/v9 v9.11.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/spanner v1.83.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/chi/v5 v5.2.2
Step #0 - "install-dependencies": go: downloading github.com/valkey-io/valkey-go v1.0.62
Step #0 - "install-dependencies": go: downloading github.com/microsoft/go-mssqldb v1.9.2
Step #0 - "install-dependencies": go: downloading github.com/go-sql-driver/mysql v1.9.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/http v1.0.9
Step #0 - "install-dependencies": go: downloading golang.org/x/oauth2 v0.30.0
Step #0 - "install-dependencies": go: downloading modernc.org/sqlite v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/validator/v10 v10.27.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/httplog/v2 v2.1.1
Step #0 - "install-dependencies": go: downloading github.com/spf13/cobra v1.9.1
Step #0 - "install-dependencies": go: downloading github.com/json-iterator/go v1.1.12
Step #0 - "install-dependencies": go: downloading github.com/go-chi/render v1.0.3
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0
Step #0 - "install-dependencies": go: downloading github.com/google/uuid v1.6.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.61.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/metric v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go v0.121.2
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk/metric v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0
Step #0 - "install-dependencies": go: downloading golang.org/x/sys v0.33.0
Step #0 - "install-dependencies": go: downloading filippo.io/edwards25519 v1.1.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/monitoring v1.24.2
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0
Step #0 - "install-dependencies": go: downloading github.com/googleapis/gax-go/v2 v2.14.2
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822
Step #0 - "install-dependencies": go: downloading google.golang.org/grpc v1.73.0
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2
Step #0 - "install-dependencies": go: downloading google.golang.org/protobuf v1.36.6
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/errors v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78
Step #0 - "install-dependencies": go: downloading golang.org/x/crypto v0.39.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/trace v1.11.6
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/aws v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/b3 v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/jaeger v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/ot v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/ajg/form v1.5.1
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/compute/metadata v0.7.0
Step #0 - "install-dependencies": go: downloading github.com/inconshreveable/mousetrap v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/pflag v1.0.6
Step #0 - "install-dependencies": go: downloading github.com/cespare/xxhash/v2 v2.3.0
Step #0 - "install-dependencies": go: downloading github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
Step #0 - "install-dependencies": go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
Step #0 - "install-dependencies": go: downloading github.com/modern-go/reflect2 v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/gabriel-vasile/mimetype v1.4.8
Step #0 - "install-dependencies": go: downloading github.com/go-playground/universal-translator v0.18.1
Step #0 - "install-dependencies": go: downloading github.com/leodido/go-urn v1.4.0
Step #0 - "install-dependencies": go: downloading golang.org/x/text v0.26.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/auth v0.16.2
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/auth/oauth2adapt v0.2.8
Step #0 - "install-dependencies": go: downloading golang.org/x/net v0.41.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydb v1.16.1
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/iam v1.5.2
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/longrunning v0.6.7
Step #0 - "install-dependencies": go: downloading github.com/jackc/puddle/v2 v2.2.2
Step #0 - "install-dependencies": go: downloading github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9
Step #0 - "install-dependencies": go: downloading github.com/golang-sql/sqlexp v0.1.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocbcore/v10 v10.7.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocbcoreps v0.1.3
Step #0 - "install-dependencies": go: downloading github.com/couchbase/goprotostellar v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20240607131231-fb385523de28
Step #0 - "install-dependencies": go: downloading github.com/golang/snappy v0.0.4
Step #0 - "install-dependencies": go: downloading go.uber.org/zap v1.27.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.3
Step #0 - "install-dependencies": go: downloading go.opencensus.io v0.24.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/detectors/gcp v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/apache/arrow/go/v15 v15.0.2
Step #0 - "install-dependencies": go: downloading golang.org/x/sync v0.15.0
Step #0 - "install-dependencies": go: downloading github.com/go-logr/logr v1.4.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/proto/otlp v1.6.0
Step #0 - "install-dependencies": go: downloading go.uber.org/multierr v1.11.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/locales v0.14.1
Step #0 - "install-dependencies": go: downloading golang.org/x/time v0.12.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgpassfile v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
Step #0 - "install-dependencies": go: downloading github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0
Step #0 - "install-dependencies": go: downloading github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8
Step #0 - "install-dependencies": go: downloading github.com/gorilla/websocket v1.5.3
Step #0 - "install-dependencies": go: downloading github.com/go-logr/stdr v1.2.2
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/auto/sdk v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/cenkalti/backoff/v5 v5.0.2
Step #0 - "install-dependencies": go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3
Step #0 - "install-dependencies": go: downloading github.com/google/s2a-go v0.1.9
Step #0 - "install-dependencies": go: downloading github.com/googleapis/enterprise-certificate-proxy v0.3.6
Step #0 - "install-dependencies": go: downloading github.com/felixge/httpsnoop v1.0.4
Step #0 - "install-dependencies": go: downloading github.com/envoyproxy/go-control-plane/envoy v1.32.4
Step #0 - "install-dependencies": go: downloading github.com/spiffe/go-spiffe/v2 v2.5.0
Step #0 - "install-dependencies": go: downloading github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f
Step #0 - "install-dependencies": go: downloading golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
Step #0 - "install-dependencies": go: downloading golang.org/x/tools v0.33.0
Step #0 - "install-dependencies": go: downloading golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da
Step #0 - "install-dependencies": go: downloading github.com/klauspost/compress v1.16.7
Step #0 - "install-dependencies": go: downloading github.com/google/flatbuffers v23.5.26+incompatible
Step #0 - "install-dependencies": go: downloading github.com/pierrec/lz4/v4 v4.1.18
Step #0 - "install-dependencies": go: downloading github.com/go-jose/go-jose/v4 v4.0.5
Step #0 - "install-dependencies": go: downloading github.com/zeebo/errs v1.4.0
Step #0 - "install-dependencies": go: downloading cel.dev/expr v0.23.0
Step #0 - "install-dependencies": go: downloading github.com/envoyproxy/protoc-gen-validate v1.2.1
Step #0 - "install-dependencies": go: downloading github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-json v0.10.2
Step #0 - "install-dependencies": go: downloading github.com/zeebo/xxh3 v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/klauspost/cpuid/v2 v2.2.5
Step #0 - "install-dependencies": go: downloading golang.org/x/mod v0.25.0
Step #0 - "install-dependencies": go: downloading modernc.org/libc v1.65.10
Step #0 - "install-dependencies": go: downloading modernc.org/memory v1.11.0
Step #0 - "install-dependencies": go: downloading github.com/mattn/go-isatty v0.0.20
Step #0 - "install-dependencies": go: downloading github.com/ncruces/go-strftime v0.1.9
Step #0 - "install-dependencies": go: downloading modernc.org/mathutil v1.7.1
Step #0 - "install-dependencies": go: downloading github.com/dustin/go-humanize v1.0.1
Step #0 - "install-dependencies": go: downloading github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
Finished Step #0 - "install-dependencies"
Starting Step #1 - "compile-test-binary"
Step #1 - "compile-test-binary": Already have image (with digest): golang:1
Step #1 - "compile-test-binary": ? github.com/googleapis/genai-toolbox/tests [no test files]
Finished Step #1 - "compile-test-binary"
Starting Step #2 - "cloud-sql-pg"
Starting Step #7 - "postgres"
Starting Step #15 - "http"
Starting Step #11 - "cloud-sql-mysql"
Starting Step #13 - "mssql"
Starting Step #14 - "dgraph"
Starting Step #4 - "alloydb-ai-nl"
Starting Step #10 - "cloud-sql-mssql"
Starting Step #12 - "mysql"
Starting Step #9 - "neo4j"
Starting Step #16 - "sqlite"
Starting Step #18 - "redis"
Step #2 - "cloud-sql-pg": Already have image (with digest): golang:1
Starting Step #6 - "bigquery"
Starting Step #8 - "spanner"
Starting Step #5 - "bigtable"
Starting Step #17 - "couchbase"
Starting Step #3 - "alloydb-pg"
Starting Step #19 - "valkey"
Step #14 - "dgraph": Already have image (with digest): golang:1
Step #11 - "cloud-sql-mysql": Already have image (with digest): golang:1
Step #4 - "alloydb-ai-nl": Already have image (with digest): golang:1
Step #16 - "sqlite": Already have image (with digest): golang:1
Step #17 - "couchbase": Already have image (with digest): golang:1
Step #8 - "spanner": Already have image (with digest): golang:1
Step #12 - "mysql": Already have image (with digest): golang:1
Step #5 - "bigtable": Already have image (with digest): golang:1
Step #13 - "mssql": Already have image (with digest): golang:1
Step #7 - "postgres": Already have image (with digest): golang:1
Step #19 - "valkey": Already have image (with digest): golang:1
Step #6 - "bigquery": Already have image (with digest): golang:1
Step #9 - "neo4j": Already have image (with digest): golang:1
Step #10 - "cloud-sql-mssql": Already have image (with digest): golang:1
Step #18 - "redis": Already have image (with digest): golang:1
Step #15 - "http": Already have image (with digest): golang:1
Step #3 - "alloydb-pg": Already have image (with digest): golang:1
Step #14 - "dgraph": === RUN TestDgraphToolEndpoints
Step #5 - "bigtable": === RUN TestBigtableToolEndpoints
Step #6 - "bigquery": === RUN TestBigQueryToolEndpoints
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint
Step #5 - "bigtable": 2025/07/19 06:07:22 Creating table param_table02dff68837d94089bf0461eda89ca1f8
Step #14 - "dgraph": === RUN TestDgraphToolEndpoints/get_my-simple-tool
Step #14 - "dgraph": 2025-07-19T06:07:22.24166011Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-dql-tool/" method: "GET" path: "/api/tool/my-simple-dql-tool/" remoteIP: "127.0.0.1:47180" proto: "HTTP/1.1" requestID: "93fe0736df8c/nL1TL7ak5O-000001"} httpResponse: {status: 200 bytes: 171 elapsed: 0.603203}
Step #14 - "dgraph": === RUN TestDgraphToolEndpoints/invoke_my-simple-dql-tool
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/get_my-simple-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.286159577Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:47190" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000001"} httpResponse: {status: 200 bytes: 167 elapsed: 0.458083}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_my-simple-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.369189965Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/invoke" method: "POST" path: "/api/tool/my-simple-tool/invoke" remoteIP: "127.0.0.1:47190" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 0.702580}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_my-param-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.371470607Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool/invoke" method: "POST" path: "/api/tool/my-param-tool/invoke" remoteIP: "127.0.0.1:47190" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 1.233037}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_my-param-tool2_with_nil_response
Step #16 - "sqlite": 2025-07-19T06:07:22.373419126Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool2/invoke" method: "POST" path: "/api/tool/my-param-tool2/invoke" remoteIP: "127.0.0.1:47190" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 1.079837}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-param-tool_without_parameters
Step #16 - "sqlite": 2025-07-19T06:07:22.374420557Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool/invoke" method: "POST" path: "/api/tool/my-param-tool/invoke" remoteIP: "127.0.0.1:47190" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000005"} httpResponse: {status: 400 bytes: 98 elapsed: 0.232927}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-param-tool_with_insufficient_parameters
Step #16 - "sqlite": 2025-07-19T06:07:22.375820447Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool/invoke" method: "POST" path: "/api/tool/my-param-tool/invoke" remoteIP: "127.0.0.1:47206" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000006"} httpResponse: {status: 400 bytes: 100 elapsed: 0.239687}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_auth_token
Step #8 - "spanner": === RUN TestSpannerToolEndpoints
Step #16 - "sqlite": 2025-07-19T06:07:22.510645431Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:47222" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000007"} httpResponse: {status: 200 bytes: 36 elapsed: 133.707794}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_invalid_auth_token
Step #16 - "sqlite": 2025-07-19T06:07:22.511856047Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:47222" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000008"} httpResponse: {status: 400 bytes: 159 elapsed: 0.226536}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-auth-tool_without_auth_token
Step #16 - "sqlite": 2025-07-19T06:07:22.513199612Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:47224" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000009"} httpResponse: {status: 400 bytes: 159 elapsed: 0.302262}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_with_auth_token
Step #16 - "sqlite": 2025-07-19T06:07:22.515153171Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:47238" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000010"} httpResponse: {status: 200 bytes: 25 elapsed: 0.775115}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_with_invalid_auth_token
Step #14 - "dgraph": 2025-07-19T06:07:22.515473424Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-dql-tool/invoke" method: "POST" path: "/api/tool/my-simple-dql-tool/invoke" remoteIP: "127.0.0.1:47180" proto: "HTTP/1.1" requestID: "93fe0736df8c/nL1TL7ak5O-000002"} httpResponse: {status: 200 bytes: 47 elapsed: 272.533062}
Step #14 - "dgraph": --- PASS: TestDgraphToolEndpoints (0.80s)
Step #14 - "dgraph": --- PASS: TestDgraphToolEndpoints/get_my-simple-tool (0.00s)
Step #14 - "dgraph": --- PASS: TestDgraphToolEndpoints/invoke_my-simple-dql-tool (0.27s)
Step #14 - "dgraph": PASS
Step #16 - "sqlite": 2025-07-19T06:07:22.516227408Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:47238" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000011"} httpResponse: {status: 401 bytes: 119 elapsed: 0.159471}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_without_auth_token
Step #16 - "sqlite": 2025-07-19T06:07:22.517603916Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:47244" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000012"} httpResponse: {status: 400 bytes: 159 elapsed: 0.257368}
Step #16 - "sqlite": 2025-07-19T06:07:22.519133775Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000013"} httpResponse: {status: 200 bytes: 195 elapsed: 0.544948}
Step #16 - "sqlite": 2025-07-19T06:07:22.520034839Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000014"} httpResponse: {status: 202 bytes: 0 elapsed: 0.194464}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/MCP_Invoke_my-param-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.522511665Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000015"} httpResponse: {status: 200 bytes: 170 elapsed: 1.670699}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/MCP_Invoke_invalid_tool
Step #14 - "dgraph": coverage: 7.7% of statements in ./internal/sources/..., ./internal/tools/...
Step #16 - "sqlite": 2025-07-19T06:07:22.523755834Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000016"} httpResponse: {status: 200 bytes: 131 elapsed: 0.427110}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/MCP_Invoke_my-param-tool_without_parameters
Step #16 - "sqlite": 2025-07-19T06:07:22.525047515Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000017"} httpResponse: {status: 200 bytes: 149 elapsed: 0.225996}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/MCP_Invoke_my-param-tool_with_insufficient_parameters
Step #16 - "sqlite": 2025-07-19T06:07:22.526405212Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000018"} httpResponse: {status: 200 bytes: 156 elapsed: 0.317513}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/MCP_Invoke_my-auth-required-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.527698454Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000019"} httpResponse: {status: 200 bytes: 156 elapsed: 0.247497}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/MCP_Invoke_my-fail-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.529303658Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000020"} httpResponse: {status: 200 bytes: 180 elapsed: 0.582161}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_create-table-templateParams-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.540517176Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/create-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/create-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000021"} httpResponse: {status: 200 bytes: 18 elapsed: 10.069206}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_insert-table-templateParams-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.547986868Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/insert-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/insert-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000022"} httpResponse: {status: 200 bytes: 18 elapsed: 6.247535}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_insert-table-templateParams-tool#01
Step #16 - "sqlite": 2025-07-19T06:07:22.554645632Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/insert-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/insert-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000023"} httpResponse: {status: 200 bytes: 18 elapsed: 5.635741}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_select-templateParams-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.557281529Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-templateParams-tool/invoke" method: "POST" path: "/api/tool/select-templateParams-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000024"} httpResponse: {status: 200 bytes: 97 elapsed: 1.536160}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_select-templateParams-combined-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.559254059Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-templateParams-combined-tool/invoke" method: "POST" path: "/api/tool/select-templateParams-combined-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000025"} httpResponse: {status: 200 bytes: 55 elapsed: 0.888623}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_select-fields-templateParams-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.561498569Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-fields-templateParams-tool/invoke" method: "POST" path: "/api/tool/select-fields-templateParams-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000026"} httpResponse: {status: 200 bytes: 56 elapsed: 1.259919}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_select-filter-templateParams-combined-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.563150927Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-filter-templateParams-combined-tool/invoke" method: "POST" path: "/api/tool/select-filter-templateParams-combined-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000027"} httpResponse: {status: 200 bytes: 55 elapsed: 0.914155}
Step #16 - "sqlite": === RUN TestSQLiteToolEndpoint/invoke_drop-table-templateParams-tool
Step #16 - "sqlite": 2025-07-19T06:07:22.571185708Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/drop-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/drop-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:47252" proto: "HTTP/1.1" requestID: "a2c8a29db5ba/xrXunV368h-000028"} httpResponse: {status: 200 bytes: 18 elapsed: 7.022780}
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint (0.37s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/get_my-simple-tool (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/invoke_my-simple-tool (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/invoke_my-param-tool (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/invoke_my-param-tool2_with_nil_response (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/Invoke_my-param-tool_without_parameters (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/Invoke_my-param-tool_with_insufficient_parameters (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_auth_token (0.13s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_invalid_auth_token (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint/Invoke_my-auth-tool_without_auth_token (0.00s)
Step #16 - "sqlite": --- PASS: TestSQLiteToolEndpoint
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22f9aa104b-5d9a-45d1-aa94-57f6d66aa2bb%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616.]
...
- "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-param-tool (0.37s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_invalid_tool (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-param-tool_without_parameters (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-param-tool_with_insufficient_parameters (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-auth-required-tool (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-fail-tool (0.28s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_create-table-templateParams-tool (0.58s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool (2.06s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool#01 (1.80s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-tool (0.55s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-combined-tool (0.52s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_select-fields-templateParams-tool (1.66s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.43s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_drop-table-templateParams-tool (0.49s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_without_body (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool (0.28s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_create_table (0.18s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_with_data_present_in_table (1.17s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.15s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_insert_entry (2.15s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_without_body#01 (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token (0.31s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool (2.83s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_project (3.24s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_non-existent_project (0.50s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool (1.94s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool_without_body (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool (0.18s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_correct_project (0.20s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_non-existent_project (0.10s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-get-dataset-info-tool_without_body (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_auth_token (0.22s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_without_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool (0.14s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body#01 (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_auth_token (0.11s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project (0.10s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project (0.12s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_without_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-get-table-info-tool_without_body (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-get-table-info-tool (0.12s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-get-table-info-tool_without_body (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_auth_token (0.11s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project (0.12s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project (0.03s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_without_auth_token (0.00s)
Step #6 - "bigquery": PASS
Step #6 - "bigquery": coverage: 21.1% of statements in ./internal/sources/..., ./internal/tools/...
Step #6 - "bigquery": Calculating coverage for BigQuery...
Step #6 - "bigquery": BigQuery total coverage: 75.9%
Step #6 - "bigquery": Coverage for BigQuery is sufficient.
Finished Step #6 - "bigquery"
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/get_my-simple-tool
Step #8 - "spanner": 2025-07-19T06:08:11.110969796Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/" method: "GET" path: "/api/tool/my-simple-tool/" remoteIP: "127.0.0.1:37630" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000001"} httpResponse: {status: 200 bytes: 167 elapsed: 0.413479}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-simple-tool
Step #8 - "spanner": 2025-07-19T06:08:11.711944349Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-tool/invoke" method: "POST" path: "/api/tool/my-simple-tool/invoke" remoteIP: "127.0.0.1:37630" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000002"} httpResponse: {status: 200 bytes: 28 elapsed: 585.256915}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-param-tool
Step #8 - "spanner": 2025-07-19T06:08:11.744170052Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool/invoke" method: "POST" path: "/api/tool/my-param-tool/invoke" remoteIP: "127.0.0.1:37630" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000003"} httpResponse: {status: 200 bytes: 81 elapsed: 31.193779}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-param-tool2_with_nil_response
Step #8 - "spanner": 2025-07-19T06:08:11.763484277Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool2/invoke" method: "POST" path: "/api/tool/my-param-tool2/invoke" remoteIP: "127.0.0.1:37630" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000004"} httpResponse: {status: 200 bytes: 44 elapsed: 18.400740}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-param-tool_without_parameters
Step #8 - "spanner": 2025-07-19T06:08:11.764841114Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool/invoke" method: "POST" path: "/api/tool/my-param-tool/invoke" remoteIP: "127.0.0.1:37630" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000005"} httpResponse: {status: 400 bytes: 98 elapsed: 0.300211}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-param-tool_with_insufficient_parameters
Step #8 - "spanner": 2025-07-19T06:08:11.766144216Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-param-tool/invoke" method: "POST" path: "/api/tool/my-param-tool/invoke" remoteIP: "127.0.0.1:37644" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000006"} httpResponse: {status: 400 bytes: 100 elapsed: 0.223477}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-tool_with_auth_token
Step #8 - "spanner": 2025-07-19T06:08:11.810669785Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:37660" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000007"} httpResponse: {status: 200 bytes: 36 elapsed: 43.443581}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token
Step #8 - "spanner": 2025-07-19T06:08:11.811821787Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:37660" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000008"} httpResponse: {status: 400 bytes: 159 elapsed: 0.212035}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-tool_without_auth_token
Step #8 - "spanner": 2025-07-19T06:08:11.813057845Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:37666" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000009"} httpResponse: {status: 400 bytes: 159 elapsed: 0.182283}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_auth_token
Step #8 - "spanner": 2025-07-19T06:08:11.828095755Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:37676" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000010"} httpResponse: {status: 200 bytes: 28 elapsed: 13.966334}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token
Step #8 - "spanner": 2025-07-19T06:08:11.829247197Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-required-tool/invoke" method: "POST" path: "/api/tool/my-auth-required-tool/invoke" remoteIP: "127.0.0.1:37676" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000011"} httpResponse: {status: 401 bytes: 119 elapsed: 0.186693}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-required-tool_without_auth_token
Step #8 - "spanner": 2025-07-19T06:08:11.830625524Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-tool/invoke" method: "POST" path: "/api/tool/my-auth-tool/invoke" remoteIP: "127.0.0.1:37686" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000012"} httpResponse: {status: 400 bytes: 159 elapsed: 0.250837}
Step #8 - "spanner": 2025-07-19T06:08:11.8321024Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000013"} httpResponse: {status: 200 bytes: 195 elapsed: 0.518416}
Step #8 - "spanner": 2025-07-19T06:08:11.833025136Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000014"} httpResponse: {status: 202 bytes: 0 elapsed: 0.171472}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/MCP_Invoke_my-param-tool
Step #8 - "spanner": 2025-07-19T06:08:11.850809331Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000015"} httpResponse: {status: 200 bytes: 178 elapsed: 17.045223}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/MCP_Invoke_invalid_tool
Step #8 - "spanner": 2025-07-19T06:08:11.852139386Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000016"} httpResponse: {status: 200 bytes: 131 elapsed: 0.318493}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/MCP_Invoke_my-param-tool_without_parameters
Step #8 - "spanner": 2025-07-19T06:08:11.853484531Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000017"} httpResponse: {status: 200 bytes: 149 elapsed: 0.328333}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/MCP_Invoke_my-param-tool_with_insufficient_parameters
Step #8 - "spanner": 2025-07-19T06:08:11.854641853Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000018"} httpResponse: {status: 200 bytes: 156 elapsed: 0.286331}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/MCP_Invoke_my-auth-required-tool
Step #8 - "spanner": 2025-07-19T06:08:11.855643695Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000019"} httpResponse: {status: 200 bytes: 156 elapsed: 0.171282}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/MCP_Invoke_my-fail-tool
Step #8 - "spanner": 2025-07-19T06:08:11.867837462Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000020"} httpResponse: {status: 200 bytes: 331 elapsed: 11.395091}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_list-tables-read-only
Step #8 - "spanner": 2025-07-19T06:08:11.906061822Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/access-schema-read-only/invoke" method: "POST" path: "/api/tool/access-schema-read-only/invoke" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000021"} httpResponse: {status: 200 bytes: 56 elapsed: 37.360968}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_list-tables
Step #8 - "spanner": 2025-07-19T06:08:11.919414613Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/access-schema/invoke" method: "POST" path: "/api/tool/access-schema/invoke" remoteIP: "127.0.0.1:37698" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000022"} httpResponse: {status: 400 bytes: 266 elapsed: 12.352399}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only
Step #8 - "spanner": 2025-07-19T06:08:11.943407Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:37710" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000023"} httpResponse: {status: 200 bytes: 28 elapsed: 21.906008}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_with_data_present_in_table
Step #8 - "spanner": 2025-07-19T06:08:11.966752911Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:37710" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000024"} httpResponse: {status: 200 bytes: 81 elapsed: 22.514022}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_create_table
Step #8 - "spanner": 2025-07-19T06:08:11.975951066Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:37710" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000025"} httpResponse: {status: 400 bytes: 407 elapsed: 8.248596}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_drop_table
Step #8 - "spanner": 2025-07-19T06:08:11.985731191Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:37716" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000026"} httpResponse: {status: 400 bytes: 363 elapsed: 8.763313}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_insert_entry
Step #8 - "spanner": 2025-07-19T06:08:11.991388574Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool-read-only/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool-read-only/invoke" remoteIP: "127.0.0.1:37730" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000027"} httpResponse: {status: 400 bytes: 282 elapsed: 4.637900}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body
Step #8 - "spanner": 2025-07-19T06:08:11.992756601Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37734" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000028"} httpResponse: {status: 400 bytes: 99 elapsed: 0.194093}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool
Step #8 - "spanner": 2025-07-19T06:08:12.009490812Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37750" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000029"} httpResponse: {status: 200 bytes: 28 elapsed: 15.653214}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool_create_table
Step #8 - "spanner": 2025-07-19T06:08:12.021041244Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37750" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000030"} httpResponse: {status: 400 bytes: 407 elapsed: 10.600154}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool_drop_table
Step #8 - "spanner": 2025-07-19T06:08:12.032108631Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37764" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000031"} httpResponse: {status: 400 bytes: 363 elapsed: 10.107619}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool_insert_entry
Step #8 - "spanner": 2025-07-19T06:08:12.0779077Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37776" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000032"} httpResponse: {status: 200 bytes: 18 elapsed: 44.769826}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body#01
Step #8 - "spanner": 2025-07-19T06:08:12.078920463Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37776" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000033"} httpResponse: {status: 400 bytes: 99 elapsed: 0.209554}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token
Step #8 - "spanner": 2025-07-19T06:08:12.098937457Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37786" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000034"} httpResponse: {status: 200 bytes: 28 elapsed: 18.861332}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token
Step #8 - "spanner": 2025-07-19T06:08:12.099918057Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:37786" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000035"} httpResponse: {status: 401 bytes: 119 elapsed: 0.142840}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token
Step #8 - "spanner": 2025-07-19T06:08:12.101119962Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-exec-sql-tool/invoke" method: "POST" path: "/api/tool/my-auth-exec-sql-tool/invoke" remoteIP: "127.0.0.1:57554" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000036"} httpResponse: {status: 401 bytes: 119 elapsed: 0.121478}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_create-table-templateParams-tool
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool
Step #8 - "spanner": 2025-07-19T06:08:12.124723182Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/insert-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/insert-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:57560" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000037"} httpResponse: {status: 200 bytes: 18 elapsed: 22.462308}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool#01
Step #8 - "spanner": 2025-07-19T06:08:12.148352433Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/insert-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/insert-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:57560" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000038"} httpResponse: {status: 200 bytes: 18 elapsed: 22.712977}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_select-templateParams-tool
Step #8 - "spanner": 2025-07-19T06:08:12.167992761Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-templateParams-tool/invoke" method: "POST" path: "/api/tool/select-templateParams-tool/invoke" remoteIP: "127.0.0.1:57560" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000039"} httpResponse: {status: 200 bytes: 113 elapsed: 18.643756}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_select-templateParams-combined-tool
Step #8 - "spanner": 2025-07-19T06:08:12.190356522Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-templateParams-combined-tool/invoke" method: "POST" path: "/api/tool/select-templateParams-combined-tool/invoke" remoteIP: "127.0.0.1:57560" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000040"} httpResponse: {status: 200 bytes: 63 elapsed: 21.386812}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_select-fields-templateParams-tool
Step #8 - "spanner": 2025-07-19T06:08:12.213611997Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-fields-templateParams-tool/invoke" method: "POST" path: "/api/tool/select-fields-templateParams-tool/invoke" remoteIP: "127.0.0.1:57560" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000041"} httpResponse: {status: 200 bytes: 56 elapsed: 22.170467}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_select-filter-templateParams-combined-tool
Step #8 - "spanner": 2025-07-19T06:08:12.234425858Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/select-filter-templateParams-combined-tool/invoke" method: "POST" path: "/api/tool/select-filter-templateParams-combined-tool/invoke" remoteIP: "127.0.0.1:57560" proto: "HTTP/1.1" requestID: "51f8b12bb578/vgNvIhQ8TW-000042"} httpResponse: {status: 200 bytes: 63 elapsed: 19.942939}
Step #8 - "spanner": === RUN TestSpannerToolEndpoints/invoke_drop-table-templateParams-tool
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints (68.99s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/get_my-simple-tool (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-simple-tool (0.59s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-param-tool (0.03s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-param-tool2_with_nil_response (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-param-tool_without_parameters (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-param-tool_with_insufficient_parameters (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.04s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-tool_without_auth_token (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_auth_token (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-param-tool (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/MCP_Invoke_invalid_tool (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-param-tool_without_parameters (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-param-tool_with_insufficient_parameters (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-auth-required-tool (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/MCP_Invoke_my-fail-tool (0.01s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_list-tables-read-only (0.04s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_list-tables (0.01s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_with_data_present_in_table (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_create_table (0.01s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_drop_table (0.01s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only_insert_entry (0.01s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_create_table (0.01s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.01s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_insert_entry (0.05s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body#01 (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_create-table-templateParams-tool (0.00s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool#01 (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_select-templateParams-tool (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_select-templateParams-combined-tool (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_select-fields-templateParams-tool (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.02s)
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints/invoke_drop-table-templateParams-tool (0.00s)
Step #8 - "spanner": PASS
Step #8 - "spanner": coverage: 16.6% of statements in ./internal/sources/..., ./internal/tools/...
Step #8 - "spanner": Calculating coverage for Spanner...
Step #8 - "spanner": Spanner total coverage: 86.3%
Step #8 - "spanner": Coverage for Spanner is sufficient.
Finished Step #8 - "spanner"
PUSH
DONE
Loading