Skip to content

test(internal/server): update web tests to verify resource paths - #934

Merged
AlexTalreja merged 1 commit into
toolbox-uifrom
update-web-tests
Jul 21, 2025
Merged

test(internal/server): update web tests to verify resource paths#934
AlexTalreja merged 1 commit into
toolbox-uifrom
update-web-tests

test(internal/server): update web tests to verify resource paths

5d5c648
Select commit
Loading
Failed to load commit list.
Google Cloud Build / integration-test-pr (toolbox-testing-438616) succeeded Jul 21, 2025 in 3m 38s

Summary

Build Information

Trigger integration-test-pr
Build e9d4796d-63bc-485e-bf3b-c78075bc8dea
Start 2025-07-21T11:25:34-07:00
Duration 2m33.657s
Status SUCCESS

Steps

Step Status Duration
install-dependencies SUCCESS 17.683s
compile-test-binary SUCCESS 58.953s
cloud-sql-pg SUCCESS 19.929s
alloydb-pg SUCCESS 22.044s
alloydb-ai-nl SUCCESS 8.933s
bigtable SUCCESS 19.227s
bigquery SUCCESS 35.621s
postgres SUCCESS 8.324s
spanner SUCCESS 1m11.11s
neo4j SUCCESS 4.023s
cloud-sql-mssql SUCCESS 6.983s
cloud-sql-mysql SUCCESS 5.54s
mysql SUCCESS 4.542s
mssql SUCCESS 5.173s
dgraph SUCCESS 3.427s
http SUCCESS 3.461s
sqlite SUCCESS 4.208s
couchbase SUCCESS 24.675s
redis SUCCESS 4.251s
valkey SUCCESS 4.329s

Details

starting build "e9d4796d-63bc-485e-bf3b-c78075bc8dea"

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            5d5c6484e5b966273da5969630de533a23f2f88e -> FETCH_HEAD
HEAD is now at 5d5c648 test(internal/server): update web tests to verify resource paths
GitCommit:
5d5c6484e5b966273da5969630de533a23f2f88e
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 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 cloud.google.com/go/bigquery v1.69.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigtable v1.38.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/spanner v1.83.0
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 go.opentelemetry.io/otel/trace v1.36.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocb/v2 v2.10.0
Step #0 - "install-dependencies": go: downloading github.com/go-sql-driver/mysql v1.9.3
Step #0 - "install-dependencies": go: downloading github.com/fsnotify/fsnotify v1.9.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/chi/v5 v5.2.2
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/jackc/pgx/v5 v5.7.5
Step #0 - "install-dependencies": go: downloading github.com/neo4j/neo4j-go-driver/v5 v5.28.1
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 github.com/microsoft/go-mssqldb v1.9.2
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel v1.36.0
Step #0 - "install-dependencies": go: downloading modernc.org/sqlite v1.38.0
Step #0 - "install-dependencies": go: downloading golang.org/x/oauth2 v0.30.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/http v1.0.9
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/go-chi/httplog/v2 v2.1.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.61.0
Step #0 - "install-dependencies": go: downloading github.com/json-iterator/go v1.1.12
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/render v1.0.3
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/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 go.opentelemetry.io/otel/metric v1.36.0
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/exporters/otlp/otlptrace 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/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 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 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 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 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/inconshreveable/mousetrap v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/pflag v1.0.6
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/compute/metadata v0.7.0
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 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/alloydb v1.16.1
Step #0 - "install-dependencies": go: downloading golang.org/x/net v0.41.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 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 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 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 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/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/gorilla/websocket v1.5.3
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 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 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 modernc.org/mathutil v1.7.1
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 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 #17 - "couchbase"
Starting Step #4 - "alloydb-ai-nl"
Starting Step #10 - "cloud-sql-mssql"
Starting Step #13 - "mssql"
Starting Step #12 - "mysql"
Starting Step #11 - "cloud-sql-mysql"
Starting Step #2 - "cloud-sql-pg"
Starting Step #9 - "neo4j"
Starting Step #8 - "spanner"
Starting Step #16 - "sqlite"
Step #17 - "couchbase": Already have image (with digest): golang:1
Starting Step #14 - "dgraph"
Starting Step #5 - "bigtable"
Starting Step #3 - "alloydb-pg"
Step #4 - "alloydb-ai-nl": Already have image (with digest): golang:1
Step #12 - "mysql": 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 #13 - "mssql": Already have image (with digest): golang:1
Step #16 - "sqlite": Already have image (with digest): golang:1
Step #14 - "dgraph": Already have image (with digest): golang:1
Step #9 - "neo4j": Already have image (with digest): golang:1
Step #3 - "alloydb-pg": Already have image (with digest): golang:1
Starting Step #19 - "valkey"
Starting Step #18 - "redis"
Starting Step #15 - "http"
Step #10 - "cloud-sql-mssql": Already have image (with digest): golang:1
Starting Step #7 - "postgres"
Starting Step #6 - "bigquery"
Step #5 - "bigtable": Already have image (with digest): golang:1
Step #8 - "spanner": Already have image (with digest): golang:1
Step #15 - "http": Already have image (with digest): golang:1
Step #18 - "redis": Already have image (with digest): golang:1
Step #7 - "postgres": Already have image (with digest): golang:1
Step #6 - "bigquery": Already have image (with digest): golang:1
Step #19 - "valkey": Already have image (with digest): golang:1
Step #14 - "dgraph": === RUN   TestDgraphToolEndpoints
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints
Step #15 - "http": === RUN   TestHttpToolEndpoints
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints
Step #14 - "dgraph": === RUN   TestDgraphToolEndpoints/get_my-simple-tool
Step #14 - "dgraph": 2025-07-21T18:26:56.134207567Z 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:41806" proto: "HTTP/1.1" requestID: "35c82c8eb1c7/1CVN3KsugJ-000001"} httpResponse: {status: 200 bytes: 171 elapsed: 0.791932} 
Step #14 - "dgraph": === RUN   TestDgraphToolEndpoints/invoke_my-simple-dql-tool
Step #15 - "http": === RUN   TestHttpToolEndpoints/get_my-simple-tool
Step #15 - "http": 2025-07-21T18:26:56.24279678Z 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:41820" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000001"} httpResponse: {status: 200 bytes: 167 elapsed: 1.042859} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-simple-tool
Step #15 - "http": 2025-07-21T18:26:56.24736904Z 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:41820" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000002"} httpResponse: {status: 200 bytes: 35 elapsed: 2.021351} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-param-tool
Step #15 - "http": 2025-07-21T18:26:56.249962657Z 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:41820" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 1.356235} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-param-tool2_with_nil_response
Step #15 - "http": 2025-07-21T18:26:56.252702139Z 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:41820" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 1.422475} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-param-tool_without_parameters
Step #15 - "http": 2025-07-21T18:26:56.254056894Z 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:41820" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000005"} httpResponse: {status: 400 bytes: 100 elapsed: 0.319350} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-param-tool_with_insufficient_parameters
Step #15 - "http": 2025-07-21T18:26:56.256247841Z 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:41826" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000006"} httpResponse: {status: 400 bytes: 100 elapsed: 0.465072} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-auth-tool_with_auth_token
Step #5 - "bigtable": === RUN   TestBigtableToolEndpoints
Step #14 - "dgraph": 2025-07-21T18:26:56.412193627Z 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:41806" proto: "HTTP/1.1" requestID: "35c82c8eb1c7/1CVN3KsugJ-000002"} httpResponse: {status: 200 bytes: 47 elapsed: 276.337038} 
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.28s)
Step #14 - "dgraph": PASS
Step #14 - "dgraph": coverage: 7.7% of statements in ./internal/sources/..., ./internal/tools/...
Step #15 - "http": 2025-07-21T18:26:56.451915386Z 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:41842" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000007"} httpResponse: {status: 200 bytes: 36 elapsed: 194.047303} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token
Step #15 - "http": 2025-07-21T18:26:56.453444889Z 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:41842" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000008"} httpResponse: {status: 400 bytes: 159 elapsed: 0.287761} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-auth-tool_without_auth_token
Step #15 - "http": 2025-07-21T18:26:56.455267563Z 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:41856" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000009"} httpResponse: {status: 400 bytes: 159 elapsed: 0.318841} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-auth-required-tool_with_auth_token
Step #15 - "http": 2025-07-21T18:26:56.458064389Z 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:41866" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000010"} httpResponse: {status: 200 bytes: 35 elapsed: 1.393637} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token
Step #15 - "http": 2025-07-21T18:26:56.459314082Z 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:41866" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000011"} httpResponse: {status: 401 bytes: 119 elapsed: 0.180411} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/Invoke_my-auth-required-tool_without_auth_token
Step #15 - "http": 2025-07-21T18:26:56.460725275Z 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:41882" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000012"} httpResponse: {status: 400 bytes: 159 elapsed: 0.264010} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-advanced-tool
Step #15 - "http": 2025-07-21T18:26:56.463652821Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-advanced-tool/invoke" method: "POST" path: "/api/tool/my-advanced-tool/invoke" remoteIP: "127.0.0.1:41898" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000013"} httpResponse: {status: 200 bytes: 35 elapsed: 1.689025} 
Step #15 - "http": === RUN   TestHttpToolEndpoints/invoke_my-advanced-tool_with_wrong_params
Step #15 - "http": 2025-07-21T18:26:56.465972961Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-advanced-tool/invoke" method: "POST" path: "/api/tool/my-advanced-tool/invoke" remoteIP: "127.0.0.1:41898" proto: "HTTP/1.1" requestID: "2f214bd460ab/jVQpe7SW0g-000014"} httpResponse: {status: 400 bytes: 168 elapsed: 1.325815} 
Step #15 - "http": --- PASS: TestHttpToolEndpoints (0.38s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/get_my-simple-tool (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/invoke_my-simple-tool (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/invoke_my-param-tool (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/invoke_my-param-tool2_with_nil_response (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-param-tool_without_parameters (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-param-tool_with_insufficient_parameters (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.20s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-auth-tool_with_invalid_auth_token (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-auth-tool_without_auth_token (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-auth-required-tool_with_auth_token (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-auth-required-tool_with_invalid_auth_token (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/Invoke_my-auth-required-tool_without_auth_token (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/invoke_my-advanced-tool (0.00s)
Step #15 - "http":     --- PASS: TestHttpToolEndpoints/invoke_my-advanced-tool_with_wrong_params (0.00s)
Step #15 - "http": PASS
Step #15 - "http": coverage: 15.1% of statements in ./internal/sources/..., ./internal/tools/...
Step #5 - "bigtable": 2025/07/21 18:26:56 Creating table param_tablec5b883e0db204d56b44ec94e38bc8dad
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint
Step #9 - "neo4j": === RUN   TestNeo4jToolEndpoints
Step #9 - "neo4j": === RUN   TestNeo4jToolEndpoints/get_my-simple-tool
Step #9 - "neo4j": 2025-07-21T18:26:56.73985815Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-cypher-tool/" method: "GET" path: "/api/tool/my-simple-cypher-tool/" remoteIP: "127.0.0.1:41906" proto: "HTTP/1.1" requestID: "9b28313f3e15/e43vh6QRvi-000001"} httpResponse: {status: 200 bytes: 174 elapsed: 0.632409} 
Step #9 - "neo4j": === RUN   TestNeo4jToolEndpoints/invoke_my-simple-cypher-tool
Step #9 - "neo4j": 2025-07-21T18:26:56.747366554Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-simple-cypher-tool/invoke" method: "POST" path: "/api/tool/my-simple-cypher-tool/invoke" remoteIP: "127.0.0.1:41906" proto: "HTTP/1.1" requestID: "9b28313f3e15/e43vh6QRvi-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 5.919452} 
Step #9 - "neo4j": --- PASS: TestNeo4jToolEndpoints (0.05s)
Step #9 - "neo4j":     --- PASS: TestNeo4jToolEndpoints/get_my-simple-tool (0.00s)
Step #9 - "neo4j":     --- PASS: TestNeo4jToolEndpoints/invoke_my-simple-cypher-tool (0.01s)
Step #9 - "neo4j": PASS
Step #9 - "neo4j": coverage: 5.7% of statements in ./internal/sources/..., ./internal/tools/...
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/get_my-simple-tool
Step #16 - "sqlite": 2025-07-21T18:26:56.782431931Z 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:41914" proto: "HTTP/1.1" requestID: "69c59e581d95/2IRJfdjqdm-000001"} httpResponse: {status: 200 bytes: 167 elapsed: 0.673868} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-simple-tool
Step #16 - "sqlite": 2025-07-21T18:26:56.79109039Z 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:41914" proto: "HTTP/1.1" requestID: "69c59e581d95/2IRJfdjqdm-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 0.927217} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-param-tool
Step #16 - "sqlite": 2025-07-21T18:26:56.793764635Z 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:41914" proto: "HTTP/1.1" requestID: "69c59e581d95/2IRJfdjqdm-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 1.459525} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-param-tool2_with_nil_response
Step #16 - "sqlite": 2025-07-21T18:26:56.795933304Z 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:41914" proto: "HTTP/1.1" requestID: "69c59e581d95/2IRJfdjqdm-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 0.980548} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-param-tool_without_parameters
Step #16 - "sqlite": 2025-07-21T18:26:56.797435384Z 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:41914" proto: "HTTP/1.1" requestID: "69c59e581d95/2IRJfdjqdm-000005"} httpResponse: {status: 400 bytes: 98 elapsed: 0.384147} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-param-tool_with_insufficient_parameters
Step #16 - "sqlite": 2025-07-21T18:26:56.799208213Z 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:41926" proto: "HTTP/1.1" requestID: "69c59e581d95/2IRJfdjqdm-000006"} httpResponse: {status: 400 bytes: 100 elapsed: 0.437984} 
Step #16 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_auth_token
Step #18 - "redis": === RUN   TestRedisToolEndpoints
Step #18 - "redis": === RUN   TestRedisToolEndpoints/get_my-simple-tool
Step #18 - "redis": 2025-07-21T18:26:56.874261004Z 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:41956" proto: "HTTP/1.1" requestID: "d236d876a30f/R5BSa5n7Xr-000001"} httpResponse: {status: 200 bytes: 167 elapsed: 0.795614} 
Step #18 - "redis": === RUN   TestRedisToolEndpoints/invoke_my-simple-tool
Step #18 - "redis": 2025-07-21T18:26:56.881420257Z 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:41956" proto: "HTTP/1.1" requestID: "d236d876a30f/R5BSa5n7Xr-000002"} httpResponse: {status: 200 bytes: 24 elapsed: 1.410922} 
Step #18 - "redis": === RUN   TestRedisToolEndpoints/invoke_my-param-tool
Step #18 - "redis": 2025-07-21T18:26:56.883950926Z 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:41956" proto: "HTTP/1.1" requestID: "d236d876a30f/R5BSa5n7Xr-000003"} httpResponse: {status: 200 bytes: 81 elapsed: 1.422983} 
Step #18 - "redis": === RUN   TestRedisToolEndpoints/inv
...
[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%22e9d4796d-63bc-485e-bf3b-c78075bc8dea%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616.]
...
estID: "9dfdcb1abfd8/Qpo9ZrtgL4-000031"} httpResponse: {status: 400 bytes: 363 elapsed: 16.807851} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool_insert_entry
Step #8 - "spanner": 2025-07-21T18:27:22.923971996Z 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:40392" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000032"} httpResponse: {status: 200 bytes: 18 elapsed: 46.005503} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_my-exec-sql-tool_without_body#01
Step #8 - "spanner": 2025-07-21T18:27:22.925374369Z 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:40392" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000033"} httpResponse: {status: 400 bytes: 99 elapsed: 0.246712} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token
Step #8 - "spanner": 2025-07-21T18:27:22.942521908Z 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:40396" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000034"} httpResponse: {status: 200 bytes: 28 elapsed: 15.732298} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_with_invalid_auth_token
Step #8 - "spanner": 2025-07-21T18:27:22.943849731Z 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:40396" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000035"} httpResponse: {status: 401 bytes: 119 elapsed: 0.195050} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/Invoke_my-auth-exec-sql-tool_without_auth_token
Step #8 - "spanner": 2025-07-21T18:27:22.945431318Z 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:40398" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000036"} httpResponse: {status: 401 bytes: 119 elapsed: 0.199280} 
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-21T18:27:22.967150728Z 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:40406" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000037"} httpResponse: {status: 200 bytes: 18 elapsed: 20.106429} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_insert-table-templateParams-tool#01
Step #8 - "spanner": 2025-07-21T18:27:22.989698971Z 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:40406" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000038"} httpResponse: {status: 200 bytes: 18 elapsed: 21.363208} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-templateParams-tool
Step #8 - "spanner": 2025-07-21T18:27:23.01028705Z 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:40406" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000039"} httpResponse: {status: 200 bytes: 113 elapsed: 19.305519} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-templateParams-combined-tool
Step #8 - "spanner": 2025-07-21T18:27:23.032785587Z 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:40406" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000040"} httpResponse: {status: 200 bytes: 63 elapsed: 21.352966} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-fields-templateParams-tool
Step #8 - "spanner": 2025-07-21T18:27:23.053949546Z 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:40406" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000041"} httpResponse: {status: 200 bytes: 56 elapsed: 19.827872} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_select-filter-templateParams-combined-tool
Step #8 - "spanner": 2025-07-21T18:27:23.07737648Z 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:40406" proto: "HTTP/1.1" requestID: "9dfdcb1abfd8/Qpo9ZrtgL4-000042"} httpResponse: {status: 200 bytes: 63 elapsed: 22.132278} 
Step #8 - "spanner": === RUN   TestSpannerToolEndpoints/invoke_drop-table-templateParams-tool
Step #6 - "bigquery": 2025-07-21T18:27:25.715902255Z 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:40346" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000042"} httpResponse: {status: 200 bytes: 14772 elapsed: 2909.416401} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-07-21T18:27:25.720944293Z 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:40414" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000043"} httpResponse: {status: 400 bytes: 103 elapsed: 0.288716} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool
Step #6 - "bigquery": 2025-07-21T18:27:25.92602927Z 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:40428" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000044"} httpResponse: {status: 200 bytes: 1224 elapsed: 203.858553} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_correct_project
Step #6 - "bigquery": 2025-07-21T18:27:26.125274265Z 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:40428" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000045"} httpResponse: {status: 200 bytes: 1224 elapsed: 197.501988} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-07-21T18:27:26.198416305Z 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:40428" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000046"} httpResponse: {status: 400 bytes: 440 elapsed: 71.284294} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-07-21T18:27:26.200766184Z 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:49246" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000047"} httpResponse: {status: 400 bytes: 103 elapsed: 0.410748} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:26.430275394Z 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:49256" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000048"} httpResponse: {status: 200 bytes: 1224 elapsed: 227.591443} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:26.432165481Z 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:49256" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000049"} httpResponse: {status: 401 bytes: 119 elapsed: 0.230089} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_without_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:26.434015141Z 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:49258" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000050"} httpResponse: {status: 401 bytes: 119 elapsed: 0.193538} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body
Step #6 - "bigquery": 2025-07-21T18:27:26.436679776Z 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:49272" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000051"} httpResponse: {status: 400 bytes: 103 elapsed: 0.334104} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool
Step #6 - "bigquery": 2025-07-21T18:27:26.559606583Z 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:49278" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000052"} httpResponse: {status: 200 bytes: 112 elapsed: 121.442244} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body#01
Step #6 - "bigquery": 2025-07-21T18:27:26.561221951Z 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:49278" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000053"} httpResponse: {status: 400 bytes: 103 elapsed: 0.273243} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:26.657439996Z 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:49288" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000054"} httpResponse: {status: 200 bytes: 112 elapsed: 94.538759} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project
Step #6 - "bigquery": 2025-07-21T18:27:26.760370421Z 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:49288" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000055"} httpResponse: {status: 200 bytes: 112 elapsed: 101.566924} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project
Step #6 - "bigquery": 2025-07-21T18:27:26.799059535Z 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:49288" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000056"} httpResponse: {status: 400 bytes: 436 elapsed: 37.108570} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:26.800773392Z 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:49304" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000057"} httpResponse: {status: 401 bytes: 119 elapsed: 0.235369} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_without_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:26.802568124Z 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:49308" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000058"} httpResponse: {status: 401 bytes: 119 elapsed: 0.181771} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-07-21T18:27:26.805177714Z 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:49310" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000059"} httpResponse: {status: 400 bytes: 103 elapsed: 0.270215} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool
Step #6 - "bigquery": 2025-07-21T18:27:26.936124428Z 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:49314" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000060"} httpResponse: {status: 200 bytes: 1497 elapsed: 128.556262} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-07-21T18:27:26.937978754Z 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:49314" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000061"} httpResponse: {status: 400 bytes: 103 elapsed: 0.277331} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:27.079473644Z 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:49316" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000062"} httpResponse: {status: 200 bytes: 1497 elapsed: 139.939305} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project
Step #6 - "bigquery": 2025-07-21T18:27:27.24723479Z 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:49316" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000063"} httpResponse: {status: 200 bytes: 1497 elapsed: 166.150203} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-07-21T18:27:27.306978588Z 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:49316" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000064"} httpResponse: {status: 400 bytes: 507 elapsed: 58.201171} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:27.308953767Z 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:49324" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000065"} httpResponse: {status: 401 bytes: 119 elapsed: 0.225572} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_without_auth_token
Step #6 - "bigquery": 2025-07-21T18:27:27.310478392Z 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:49328" proto: "HTTP/1.1" requestID: "8a63cd7789f2/905tMbtRk3-000066"} httpResponse: {status: 401 bytes: 119 elapsed: 0.188242} 
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints (33.09s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/get_my-simple-tool (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-simple-tool (0.31s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-param-tool (0.55s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-param-tool2_with_nil_response (0.47s)
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.49s)
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.30s)
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.36s)
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.19s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_create-table-templateParams-tool (0.61s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool (1.98s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool#01 (2.68s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-tool (0.58s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-combined-tool (0.42s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-fields-templateParams-tool (0.59s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.47s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_drop-table-templateParams-tool (0.50s)
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.32s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_create_table (0.13s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_with_data_present_in_table (0.54s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.16s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_insert_entry (1.99s)
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.24s)
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 (3.22s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_project (2.81s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_non-existent_project (0.49s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool (2.91s)
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.21s)
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.07s)
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.23s)
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.12s)
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.10s)
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.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.13s)
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.17s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project (0.06s)
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": --- PASS: TestSpannerToolEndpoints (68.34s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/get_my-simple-tool (0.00s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-simple-tool (0.55s)
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.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.01s)
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.05s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_list-tables (0.02s)
Step #8 - "spanner":     --- PASS: TestSpannerToolEndpoints/invoke_my-exec-sql-tool-read-only (0.01s)
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.03s)
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.02s)
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

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22e9d4796d-63bc-485e-bf3b-c78075bc8dea%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616