Skip to content

refactor: move export function to loadTools into navbar#992

Merged
AlexTalreja merged 1 commit into
toolbox-uifrom
refactor-tool-loading
Jul 29, 2025
Merged

refactor: move export function to loadTools into navbar#992
AlexTalreja merged 1 commit into
toolbox-uifrom
refactor-tool-loading

refactor: export function to loadTools into navbar

8d77504
Select commit
Loading
Failed to load commit list.
Google Cloud Build / integration-test-pr (toolbox-testing-438616) succeeded Jul 29, 2025 in 2m 48s

Summary

Build Information

Trigger integration-test-pr
Build f1ace131-8c15-45a5-8821-05dad045c6ef
Start 2025-07-29T10:16:41-07:00
Duration 1m57.311s
Status SUCCESS

Steps

Step Status Duration
install-dependencies SUCCESS 22.909s
compile-test-binary SUCCESS 46.208s
cloud-sql-pg SUCCESS 17.468s
alloydb-pg SUCCESS 18.715s
alloydb-ai-nl SUCCESS 7.569s
bigtable SUCCESS 17.294s
bigquery SUCCESS 43.313s
postgres SUCCESS 6.84s
spanner SUCCESS 39.268s
neo4j SUCCESS 3.922s
cloud-sql-mssql SUCCESS 6.283s
cloud-sql-mysql SUCCESS 4.56s
mysql SUCCESS 4.309s
mssql SUCCESS 5.155s
dgraph SUCCESS 3.329s
http SUCCESS 3.484s
sqlite SUCCESS 3.706s
couchbase SUCCESS 22.709s
redis SUCCESS 6.357s
valkey SUCCESS 4.02s

Details


starting build "f1ace131-8c15-45a5-8821-05dad045c6ef"

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>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /workspace/.git/
From https://github.com/googleapis/genai-toolbox
 * branch            8d775044c50d413fa931baa4c60c240757847931 -> FETCH_HEAD
HEAD is now at 8d77504 refactor: export function to loadTools into navbar
GitCommit:
8d775044c50d413fa931baa4c60c240757847931
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": ebed137c7c18: Pulling fs layer
Step #0 - "install-dependencies": c2e76af9483f: Pulling fs layer
Step #0 - "install-dependencies": 37f838b71c6b: Pulling fs layer
Step #0 - "install-dependencies": a73486c29d94: Pulling fs layer
Step #0 - "install-dependencies": a3e4aa2eec44: Pulling fs layer
Step #0 - "install-dependencies": 85db7d6e6763: Pulling fs layer
Step #0 - "install-dependencies": 4f4fb700ef54: Pulling fs layer
Step #0 - "install-dependencies": a3e4aa2eec44: Waiting
Step #0 - "install-dependencies": 85db7d6e6763: Waiting
Step #0 - "install-dependencies": 4f4fb700ef54: Waiting
Step #0 - "install-dependencies": a73486c29d94: Waiting
Step #0 - "install-dependencies": ebed137c7c18: Verifying Checksum
Step #0 - "install-dependencies": ebed137c7c18: Download complete
Step #0 - "install-dependencies": c2e76af9483f: Verifying Checksum
Step #0 - "install-dependencies": c2e76af9483f: Download complete
Step #0 - "install-dependencies": 37f838b71c6b: Verifying Checksum
Step #0 - "install-dependencies": 37f838b71c6b: Download complete
Step #0 - "install-dependencies": 85db7d6e6763: Verifying Checksum
Step #0 - "install-dependencies": 85db7d6e6763: Download complete
Step #0 - "install-dependencies": 4f4fb700ef54: Download complete
Step #0 - "install-dependencies": a3e4aa2eec44: Verifying Checksum
Step #0 - "install-dependencies": a3e4aa2eec44: Download complete
Step #0 - "install-dependencies": a73486c29d94: Download complete
Step #0 - "install-dependencies": ebed137c7c18: Pull complete
Step #0 - "install-dependencies": c2e76af9483f: Pull complete
Step #0 - "install-dependencies": 37f838b71c6b: Pull complete
Step #0 - "install-dependencies": a73486c29d94: Pull complete
Step #0 - "install-dependencies": a3e4aa2eec44: Pull complete
Step #0 - "install-dependencies": 85db7d6e6763: Pull complete
Step #0 - "install-dependencies": 4f4fb700ef54: Pull complete
Step #0 - "install-dependencies": Digest: sha256:ef5b4be1f94b36c90385abd9b6b4f201723ae28e71acacb76d00687333c17282
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 go.opentelemetry.io/otel/trace v1.36.0
Step #0 - "install-dependencies": go: downloading google.golang.org/api v0.240.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/cloudsqlconn v1.17.2
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-yaml v1.18.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydbconn v1.15.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/spanner v1.83.0
Step #0 - "install-dependencies": go: downloading github.com/valkey-io/valkey-go v1.0.62
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/bigquery v1.69.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/bigtable v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/neo4j/neo4j-go-driver/v5 v5.28.1
Step #0 - "install-dependencies": go: downloading github.com/fsnotify/fsnotify v1.9.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
Step #0 - "install-dependencies": go: downloading modernc.org/sqlite v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/go-sql-driver/mysql v1.9.3
Step #0 - "install-dependencies": go: downloading github.com/microsoft/go-mssqldb v1.9.2
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocb/v2 v2.10.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/chi/v5 v5.2.2
Step #0 - "install-dependencies": go: downloading golang.org/x/oauth2 v0.30.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/cobra v1.9.1
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/couchbase/tools-common/http v1.0.9
Step #0 - "install-dependencies": go: downloading github.com/json-iterator/go v1.1.12
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.61.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/validator/v10 v10.27.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/httplog/v2 v2.1.1
Step #0 - "install-dependencies": go: downloading github.com/go-chi/render v1.0.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/google/uuid v1.6.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.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/otlptrace v1.36.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk/metric 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 v1.36.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/protobuf v1.36.6
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2
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 github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/errors v1.0.0
Step #0 - "install-dependencies": go: downloading golang.org/x/crypto v0.39.0
Step #0 - "install-dependencies": go: downloading filippo.io/edwards25519 v1.1.0
Step #0 - "install-dependencies": go: downloading golang.org/x/sys v0.33.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/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 cloud.google.com/go/compute/metadata v0.7.0
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 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 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/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/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/jackc/puddle/v2 v2.2.2
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 go.uber.org/multierr v1.11.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 golang.org/x/time v0.12.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/locales v0.14.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.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/grpc-ecosystem/go-grpc-middleware v1.4.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgpassfile v1.0.0
Step #0 - "install-dependencies": go: downloading github.com/gorilla/websocket v1.5.3
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
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/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 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 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 golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
Step #0 - "install-dependencies": go: downloading github.com/google/flatbuffers v23.5.26+incompatible
Step #0 - "install-dependencies": go: downloading github.com/klauspost/compress v1.16.7
Step #0 - "install-dependencies": go: downloading github.com/pierrec/lz4/v4 v4.1.18
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/zeebo/xxh3 v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-json v0.10.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 github.com/dustin/go-humanize v1.0.1
Step #0 - "install-dependencies": go: downloading modernc.org/mathutil v1.7.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 #19 - "valkey"
Starting Step #3 - "alloydb-pg"
Starting Step #2 - "cloud-sql-pg"
Starting Step #6 - "bigquery"
Starting Step #9 - "neo4j"
Starting Step #13 - "mssql"
Starting Step #12 - "mysql"
Starting Step #11 - "cloud-sql-mysql"
Step #19 - "valkey": Already have image (with digest): golang:1
Starting Step #17 - "couchbase"
Starting Step #5 - "bigtable"
Starting Step #10 - "cloud-sql-mssql"
Starting Step #18 - "redis"
Step #12 - "mysql": Already have image (with digest): golang:1
Starting Step #7 - "postgres"
Starting Step #8 - "spanner"
Starting Step #15 - "http"
Step #3 - "alloydb-pg": Already have image (with digest): golang:1
Starting Step #4 - "alloydb-ai-nl"
Step #6 - "bigquery": Already have image (with digest): golang:1
Step #9 - "neo4j": Already have image (with digest): golang:1
Starting Step #16 - "sqlite"
Starting Step #14 - "dgraph"
Step #10 - "cloud-sql-mssql": Already have image (with digest): golang:1
Step #5 - "bigtable": Already have image (with digest): golang:1
Step #7 - "postgres": Already have image (with digest): golang:1
Step #18 - "redis": Already have image (with digest): golang:1
Step #13 - "mssql": Already have image (with digest): golang:1
Step #17 - "couchbase": Already have image (with digest): golang:1
Step #2 - "cloud-sql-pg": Already have image (with digest): golang:1
Step #11 - "cloud-sql-mysql": Already have image (with digest): golang:1
Step #15 - "http": Already have image (with digest): golang:1
Step #4 - "alloydb-ai-nl": Already have image (with digest): golang:1
Step #8 - "spanner": Already have image (with digest): golang:1
Step #14 - "dgraph": Already have image (with digest): golang:1
Step #16 - "sqlite": Already have image (with digest): golang:1
Step #14 - "dgraph": === RUN   TestDgraphToolEndpoints
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints
Step #14 - "dgraph": === RUN   TestDgraphToolEndpoints/get_my-simple-tool
Step #14 - "dgraph": 2025-07-29T17:17:55.370966122Z 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:36260" proto: "HTTP/1.1" requestID: "3fea717c30a1/rPoPyG1jWu-000001"} httpResponse: {status: 200 bytes: 171 elapsed: 0.633767} 
Step #14 - "dgraph": === RUN   TestDgraphToolEndpoints/invoke_my-simple-dql-tool
Step #5 - "bigtable": === RUN   TestBigtableToolEndpoints
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint
Step #5 - "bigtable": 2025/07/29 17:17:55 Creating table param_table8b2070bd6a614e3db76230116df326f3
Step #14 - "dgraph": 2025-07-29T17:17:55.656495929Z 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:36260" proto: "HTTP/1.1" requestID: "3fea717c30a1/rPoPyG1jWu-000002"} httpResponse: {status: 200 bytes: 47 elapsed: 284.435556} 
Step #14 - "dgraph": --- PASS: TestDgraphToolEndpoints (0.86s)
Step #14 - "dgraph":     --- PASS: TestDgraphToolEndpoints/get_my-simple-tool (0.00s)
Step #14 - "dgraph":     --- PASS: TestDgraphToolEndpoints/invoke_my-simple-dql-tool (0.29s)
Step #14 - "dgraph": PASS
Step #14 - "dgraph": coverage: 7.7% of statements in ./internal/sources/..., ./internal/tools/...
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/get_my-simple-tool
Step #16 - "sqlite": 2025-07-29T17:17:55.669814175Z 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:36266" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000001"} httpResponse: {status: 200 bytes: 167 elapsed: 0.733444} 
Step #15 - "http": === RUN   TestHttpToolEndpoints
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-simple-tool
Step #16 - "sqlite": 2025-07-29T17:17:55.749278041Z 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:36266" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 0.790888} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-param-tool
Step #16 - "sqlite": 2025-07-29T17:17:55.752024034Z 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:36266" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 1.113493} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-param-tool2_with_nil_response
Step #16 - "sqlite": 2025-07-29T17:17:55.753870591Z 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:36266" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 0.672400} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-param-tool_without_parameters
Step #16 - "sqlite": 2025-07-29T17:17:55.755288576Z 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:36266" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000005"} httpResponse: {status: 400 bytes: 98 elapsed: 0.326415} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-param-tool_with_insufficient_parameters
Step #16 - "sqlite": 2025-07-29T17:17:55.756915516Z 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:36276" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000006"} httpResponse: {status: 400 bytes: 100 elapsed: 0.266870} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_auth_token
Step #15 - "http": === RUN   TestHttpToolEndpoints/get_my-simple-tool
Step #15 - "http": 2025-07-29T17:17:55.778348154Z 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:36308" proto: "HTTP/1.1" requestID: "a916e73f512a/571sHYswgw-000001"} httpResponse: {status: 200 bytes: 167 elapsed: 0.570742} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-simple-tool
Step #15 - "http": 2025-07-29T17:17:55.781904997Z 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:36308" proto: "HTTP/1.1" requestID: "a916e73f512a/571sHYswgw-000002"} httpResponse: {status: 200 bytes: 35 elapsed: 1.513252} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-param-tool
Step #15 - "http": 2025-07-29T17:17:55.78437093Z 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:36308" proto: "HTTP/1.1" requestID: "a916e73f512a/571sHYswgw-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 1.083900} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-param-tool2_with_nil_response
Step #15 - "http": 2025-07-29T17:17:55.786462515Z 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:36308" proto: "HTTP/1.1" requestID: "a916e73f512a/571sHYswgw-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 1.057598} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-param-tool_without_parameters
Step #15 - "http": 2025-07-29T17:17:55.787835276Z 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:36308" proto: "HTTP/1.1" requestID: "a916e73f512a/571sHYswgw-000005"} httpResponse: {status: 400 bytes: 100 elapsed: 0.340696} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-param-tool_with_insufficient_parameters
Step #15 - "http": 2025-07-29T17:17:55.790745632Z 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:36318" proto: "HTTP/1.1" requestID: "a916e73f512a/571sHYswgw-000006"} httpResponse: {status: 400 bytes: 100 elapsed: 0.477876} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-auth-tool_with_auth_token
Step #16 - "sqlite": 2025-07-29T17:17:55.88104937Z 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:36292" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000007"} httpResponse: {status: 200 bytes: 36 elapsed: 122.773772} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_invalid_auth_token
Step #16 - "sqlite": 2025-07-29T17:17:55.882550131Z 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:36292" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000008"} httpResponse: {status: 400 bytes: 159 elapsed: 0.236777} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_without_auth_token
Step #16 - "sqlite": 2025-07-29T17:17:55.884281469Z 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:36348" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000009"} httpResponse: {status: 400 bytes: 159 elapsed: 0.298172} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_with_auth_token
Step #16 - "sqlite": 2025-07-29T17:17:55.887036053Z 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:36360" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000010"} httpResponse: {status: 200 bytes: 25 elapsed: 0.949770} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_with_invalid_auth_token
Step #16 - "sqlite": 2025-07-29T17:17:55.888227692Z 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:36360" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000011"} httpResponse: {status: 401 bytes: 119 elapsed: 0.155672} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_without_auth_token
Step #16 - "sqlite": 2025-07-29T17:17:55.889891395Z 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:36366" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000012"} httpResponse: {status: 400 bytes: 159 elapsed: 0.270800} 
Step #16 - "sqlite": 2025-07-29T17:17:55.891610502Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000013"} httpResponse: {status: 200 bytes: 195 elapsed: 0.575192} 
Step #16 - "sqlite": 2025-07-29T17:17:55.892631198Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000014"} httpResponse: {status: 202 bytes: 0 elapsed: 0.282062} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-param-tool
Step #16 - "sqlite": 2025-07-29T17:17:55.89495017Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000015"} httpResponse: {status: 200 bytes: 170 elapsed: 1.457428} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_invalid_tool
Step #16 - "sqlite": 2025-07-29T17:17:55.896081753Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000016"} httpResponse: {status: 200 bytes: 131 elapsed: 0.269800} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-param-tool_without_parameters
Step #16 - "sqlite": 2025-07-29T17:17:55.897242499Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000017"} httpResponse: {status: 200 bytes: 149 elapsed: 0.225927} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-param-tool_with_insufficient_parameters
Step #16 - "sqlite": 2025-07-29T17:17:55.898512094Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000018"} httpResponse: {status: 200 bytes: 156 elapsed: 0.343965} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-auth-required-tool
Step #16 - "sqlite": 2025-07-29T17:17:55.899886525Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000019"} httpResponse: {status: 200 bytes: 156 elapsed: 0.315014} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-fail-tool
Step #16 - "sqlite": 2025-07-29T17:17:55.901084614Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:36376" proto: "HTTP/1.1" requestID: "d585c6a2a3e3/jJnucu4fHX-000020"} httpResponse: {status: 200 bytes: 180 elapsed: 0.456834} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_create-table-templateParams-tool
Step #16 - "sqlite": 2025-07-29T17:17:55.909164072Z INFO Response: 200 OK se
...
[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%22f1ace131-8c15-45a5-8821-05dad045c6ef%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616.]
...
- "couchbase":     --- PASS: TestCouchbaseToolEndpoints/MCP_Invoke_invalid_tool (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/MCP_Invoke_my-param-tool_without_parameters (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/MCP_Invoke_my-param-tool_with_insufficient_parameters (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/MCP_Invoke_my-auth-required-tool (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/MCP_Invoke_my-fail-tool (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_create-table-templateParams-tool (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_insert-table-templateParams-tool (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_insert-table-templateParams-tool#01 (0.00s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_select-templateParams-tool (0.02s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_select-templateParams-combined-tool (0.01s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_select-fields-templateParams-tool (0.01s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.01s)
Step #17 - "couchbase":     --- PASS: TestCouchbaseToolEndpoints/invoke_drop-table-templateParams-tool (0.00s)
Step #17 - "couchbase": PASS
Step #17 - "couchbase": coverage: 13.4% of statements in ./internal/sources/..., ./internal/tools/...
Step #17 - "couchbase": Calculating coverage for Couchbase...
Step #17 - "couchbase": Couchbase total coverage: 61.1%
Step #17 - "couchbase": Coverage for Couchbase is sufficient.
Finished Step #17 - "couchbase"
Step #6 - "bigquery": 2025-07-29T17:18:17.142176883Z 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:36716" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000034"} httpResponse: {status: 200 bytes: 18 elapsed: 1949.316103} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_without_body#01
Step #6 - "bigquery": 2025-07-29T17:18:17.143719978Z 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:36716" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000035"} httpResponse: {status: 400 bytes: 99 elapsed: 0.252589} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:17.473865509Z 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:36724" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000036"} httpResponse: {status: 200 bytes: 27 elapsed: 328.739627} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:17.475183267Z 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:36724" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000037"} httpResponse: {status: 401 bytes: 119 elapsed: 0.190234} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:17.476689018Z 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:36736" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000038"} httpResponse: {status: 401 bytes: 119 elapsed: 0.174252} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool
Step #6 - "bigquery": 2025-07-29T17:18:21.956015089Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-list-dataset-ids-tool/invoke" method: "POST" path: "/api/tool/my-list-dataset-ids-tool/invoke" remoteIP: "127.0.0.1:36748" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000039"} httpResponse: {status: 200 bytes: 18237 elapsed: 4476.975827} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_project
Step #6 - "bigquery": 2025-07-29T17:18:27.865158857Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-dataset-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-dataset-ids-tool/invoke" remoteIP: "127.0.0.1:36748" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000040"} httpResponse: {status: 200 bytes: 18237 elapsed: 5906.661445} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_non-existent_project
Step #6 - "bigquery": 2025-07-29T17:18:28.308552846Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-dataset-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-dataset-ids-tool/invoke" remoteIP: "127.0.0.1:36748" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000041"} httpResponse: {status: 400 bytes: 209 elapsed: 440.477814} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool
Step #6 - "bigquery": 2025-07-29T17:18:32.005078061Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-dataset-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-dataset-ids-tool/invoke" remoteIP: "127.0.0.1:47162" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000042"} httpResponse: {status: 200 bytes: 18237 elapsed: 3694.943468} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-07-29T17:18:32.00937532Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:47162" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000043"} httpResponse: {status: 400 bytes: 103 elapsed: 0.270031} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool
Step #8 - "spanner": --- PASS: TestSpannerToolEndpoints (36.83s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/get_my-simple-tool (0.00s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-simple-tool (0.67s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-param-tool (0.04s)
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.05s)
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.07s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_list-tables (0.02s)
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.01s)
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.01s)
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.04s)
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 #6 - "bigquery": 2025-07-29T17:18:32.227679888Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:34106" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000044"} httpResponse: {status: 200 bytes: 1222 elapsed: 216.940537} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_correct_project
Step #6 - "bigquery": 2025-07-29T17:18:32.426768303Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:34106" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000045"} httpResponse: {status: 200 bytes: 1222 elapsed: 197.688722} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-07-29T17:18:32.525587252Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:34106" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000046"} httpResponse: {status: 400 bytes: 440 elapsed: 97.641092} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-07-29T17:18:32.527303108Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:34112" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000047"} httpResponse: {status: 400 bytes: 103 elapsed: 0.276080} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:32.724085793Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:34126" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000048"} httpResponse: {status: 200 bytes: 1222 elapsed: 195.544643} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:32.725888376Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:34126" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000049"} httpResponse: {status: 401 bytes: 119 elapsed: 0.426042} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_without_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:32.727409729Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-dataset-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-dataset-info-tool/invoke" remoteIP: "127.0.0.1:34142" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000050"} httpResponse: {status: 401 bytes: 119 elapsed: 0.209446} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body
Step #6 - "bigquery": 2025-07-29T17:18:32.72972629Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34152" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000051"} httpResponse: {status: 400 bytes: 103 elapsed: 0.281672} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool
Step #6 - "bigquery": 2025-07-29T17:18:32.862759073Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34164" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000052"} httpResponse: {status: 200 bytes: 112 elapsed: 131.700794} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body#01
Step #6 - "bigquery": 2025-07-29T17:18:32.864408915Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34164" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000053"} httpResponse: {status: 400 bytes: 103 elapsed: 0.280181} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:33.030226906Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34176" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000054"} httpResponse: {status: 200 bytes: 112 elapsed: 164.372274} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project
Step #8 - "spanner": Calculating coverage for Spanner...
Step #6 - "bigquery": 2025-07-29T17:18:33.161864116Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34176" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000055"} httpResponse: {status: 200 bytes: 112 elapsed: 130.279709} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project
Step #6 - "bigquery": 2025-07-29T17:18:33.2060734Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34176" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000056"} httpResponse: {status: 400 bytes: 436 elapsed: 43.047839} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:33.207668058Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34180" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000057"} httpResponse: {status: 401 bytes: 119 elapsed: 0.172913} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_without_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:33.209135707Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-list-table-ids-tool/invoke" method: "POST" path: "/api/tool/my-auth-list-table-ids-tool/invoke" remoteIP: "127.0.0.1:34188" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000058"} httpResponse: {status: 401 bytes: 119 elapsed: 0.177423} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-07-29T17:18:33.211406325Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34204" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000059"} httpResponse: {status: 400 bytes: 103 elapsed: 0.288752} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool
Step #8 - "spanner": Spanner total coverage: 86.3%
Step #8 - "spanner": Coverage for Spanner is sufficient.
Finished Step #8 - "spanner"
Step #6 - "bigquery": 2025-07-29T17:18:33.596251608Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34218" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000060"} httpResponse: {status: 200 bytes: 1497 elapsed: 383.861780} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-07-29T17:18:33.598100774Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34218" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000061"} httpResponse: {status: 400 bytes: 103 elapsed: 0.232958} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:33.741598203Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34224" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000062"} httpResponse: {status: 200 bytes: 1497 elapsed: 141.671013} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project
Step #6 - "bigquery": 2025-07-29T17:18:33.897159074Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34224" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000063"} httpResponse: {status: 200 bytes: 1497 elapsed: 153.931510} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-07-29T17:18:33.91236872Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34224" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000064"} httpResponse: {status: 400 bytes: 507 elapsed: 13.716636} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:33.914107129Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34238" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000065"} httpResponse: {status: 401 bytes: 119 elapsed: 0.178293} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_without_auth_token
Step #6 - "bigquery": 2025-07-29T17:18:33.915798615Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-get-table-info-tool/invoke" method: "POST" path: "/api/tool/my-auth-get-table-info-tool/invoke" remoteIP: "127.0.0.1:34240" proto: "HTTP/1.1" requestID: "9f9321c906fc/eOhCjtPPt9-000066"} httpResponse: {status: 401 bytes: 119 elapsed: 0.202134} 
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints (40.91s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/get_my-simple-tool (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-simple-tool (0.47s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-param-tool (0.53s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-param-tool2_with_nil_response (0.66s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-param-tool_without_parameters (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-param-tool_with_insufficient_parameters (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.63s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-tool_without_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-required-tool_with_auth_token (0.38s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-param-tool (0.55s)
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.24s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_create-table-templateParams-tool (0.64s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool (2.27s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool#01 (2.03s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-tool (0.59s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-combined-tool (0.64s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-fields-templateParams-tool (0.44s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.54s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_drop-table-templateParams-tool (0.54s)
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.34s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_create_table (0.16s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_with_data_present_in_table (0.75s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.23s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_insert_entry (1.95s)
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.33s)
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 (4.48s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_project (5.91s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_non-existent_project (0.44s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool (3.70s)
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.22s)
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.20s)
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.13s)
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.17s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project (0.13s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project (0.04s)
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.39s)
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.14s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project (0.16s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project (0.01s)
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"
PUSH
DONE

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22f1ace131-8c15-45a5-8821-05dad045c6ef%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616