Skip to content

fix(tools/bigquery-sql)!: ensure invoke always returns a non-null value#1020

Merged
Genesis929 merged 6 commits into
googleapis:mainfrom
Genesis929:bq-sql-dry-run
Aug 1, 2025
Merged

fix(tools/bigquery-sql)!: ensure invoke always returns a non-null value#1020
Genesis929 merged 6 commits into
googleapis:mainfrom
Genesis929:bq-sql-dry-run

Merge branch 'main' into bq-sql-dry-run

192b765
Select commit
Loading
Failed to load commit list.
Google Cloud Build / integration-test-pr (toolbox-testing-438616) succeeded Aug 1, 2025 in 5m 13s

Summary

Build Information

Trigger integration-test-pr
Build 356844b0-e9a3-43e6-9391-86330acc8580
Start 2025-08-01T13:50:30-07:00
Duration 4m24.445s
Status SUCCESS

Steps

Step Status Duration
install-dependencies SUCCESS 15.238s
compile-test-binary SUCCESS 1m47.432s
cloud-sql-pg SUCCESS 20.297s
alloydb-pg SUCCESS 21.728s
alloydb-ai-nl SUCCESS 10.196s
bigtable SUCCESS 27.349s
bigquery SUCCESS 1m0.44s
dataplex SUCCESS 2m13.777s
postgres SUCCESS 8.777s
spanner SUCCESS 44.515s
neo4j SUCCESS 5.855s
cloud-sql-mssql SUCCESS 7.908s
cloud-sql-mysql SUCCESS 8.446s
mysql SUCCESS 6.024s
mssql SUCCESS 8.061s
dgraph SUCCESS 4.761s
http SUCCESS 5.396s
sqlite SUCCESS 5.187s
couchbase SUCCESS 28.095s
redis SUCCESS 5.971s
valkey SUCCESS 5.305s
firestore SUCCESS 5.324s
looker SUCCESS 12.777s
duckdb SUCCESS 4.646s
alloydbwaitforoperation SUCCESS 4.338s

Details


starting build "356844b0-e9a3-43e6-9391-86330acc8580"

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            192b7652fb6a15235604347979465e2b3a53d075 -> FETCH_HEAD
HEAD is now at 192b765 Merge branch 'main' into bq-sql-dry-run
GitCommit:
192b7652fb6a15235604347979465e2b3a53d075
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: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 cloud.google.com/go/cloudsqlconn v1.17.3
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-yaml v1.18.0
Step #0 - "install-dependencies": go: downloading google.golang.org/api v0.244.0
Step #0 - "install-dependencies": go: downloading github.com/fsnotify/fsnotify v1.9.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/trace v1.37.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigquery v1.69.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/spanner v1.83.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/dataplex v1.26.0
Step #0 - "install-dependencies": go: downloading github.com/redis/go-redis/v9 v9.11.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 cloud.google.com/go/alloydbconn v1.15.4
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocb/v2 v2.10.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/marcboeker/go-duckdb/v2 v2.3.4
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/firestore v1.18.0
Step #0 - "install-dependencies": go: downloading modernc.org/sqlite v1.38.2
Step #0 - "install-dependencies": go: downloading github.com/neo4j/neo4j-go-driver/v5 v5.28.1
Step #0 - "install-dependencies": go: downloading github.com/go-sql-driver/mysql v1.9.3
Step #0 - "install-dependencies": go: downloading golang.org/x/oauth2 v0.30.0
Step #0 - "install-dependencies": go: downloading github.com/looker-open-source/sdk-codegen/go v0.25.10
Step #0 - "install-dependencies": go: downloading github.com/microsoft/go-mssqldb v1.9.2
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/http v1.0.9
Step #0 - "install-dependencies": go: downloading go.mongodb.org/mongo-driver v1.17.4
Step #0 - "install-dependencies": go: downloading github.com/go-chi/chi/v5 v5.2.2
Step #0 - "install-dependencies": go: downloading github.com/valkey-io/valkey-go v1.0.63
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
Step #0 - "install-dependencies": go: downloading github.com/go-chi/httplog/v2 v2.1.1
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go v0.121.2
Step #0 - "install-dependencies": go: downloading github.com/go-chi/render v1.0.3
Step #0 - "install-dependencies": go: downloading github.com/go-playground/validator/v10 v10.27.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.62.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/otlpmetric/otlpmetrichttp v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/metric v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk/metric v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/sdk v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/cobra v1.9.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0
Step #0 - "install-dependencies": go: downloading golang.org/x/sys v0.34.0
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.40.0
Step #0 - "install-dependencies": go: downloading github.com/apache/arrow-go/v18 v18.4.0
Step #0 - "install-dependencies": go: downloading github.com/go-viper/mapstructure/v2 v2.3.0
Step #0 - "install-dependencies": go: downloading github.com/marcboeker/go-duckdb/arrowmapping v0.0.10
Step #0 - "install-dependencies": go: downloading github.com/marcboeker/go-duckdb/mapping v0.0.11
Step #0 - "install-dependencies": go: downloading filippo.io/edwards25519 v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/json-iterator/go v1.1.12
Step #0 - "install-dependencies": go: downloading gopkg.in/ini.v1 v1.67.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.15.0
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.74.2
Step #0 - "install-dependencies": go: downloading google.golang.org/protobuf v1.36.6
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/compute/metadata v0.7.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/trace v1.11.6
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto v0.0.0-20250603155806-513f23925822
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0
Step #0 - "install-dependencies": go: downloading github.com/ajg/form v1.5.1
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/aws v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/b3 v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/jaeger v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/ot v1.37.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydb v1.18.0
Step #0 - "install-dependencies": go: downloading golang.org/x/net v0.42.0
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 cloud.google.com/go/auth v0.16.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/auth/oauth2adapt v0.2.8
Step #0 - "install-dependencies": go: downloading github.com/thlib/go-timezone-local v0.0.7
Step #0 - "install-dependencies": go: downloading github.com/cespare/xxhash/v2 v2.3.0
Step #0 - "install-dependencies": go: downloading github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
Step #0 - "install-dependencies": go: downloading github.com/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.27.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocbcore/v10 v10.7.1
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 v1.0.0
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 golang.org/x/time v0.12.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/puddle/v2 v2.2.2
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/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.16.0
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings v0.1.17
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/darwin-amd64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/darwin-arm64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/linux-amd64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/linux-arm64 v0.1.12
Step #0 - "install-dependencies": go: downloading github.com/duckdb/duckdb-go-bindings/windows-amd64 v0.1.12
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/go-logr/logr v1.4.3
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/proto/otlp v1.7.0
Step #0 - "install-dependencies": go: downloading go.uber.org/multierr v1.11.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0
Step #0 - "install-dependencies": go: downloading github.com/go-playground/locales v0.14.1
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 golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
Step #0 - "install-dependencies": go: downloading golang.org/x/tools v0.34.0
Step #0 - "install-dependencies": go: downloading golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da
Step #0 - "install-dependencies": go: downloading github.com/gorilla/websocket v1.5.3
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/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.27.1
Step #0 - "install-dependencies": go: downloading github.com/klauspost/compress v1.18.0
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/scram v1.1.2
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/stringprep v1.0.4
Step #0 - "install-dependencies": go: downloading github.com/montanaflynn/stats v0.7.1
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/envoyproxy/go-control-plane/envoy v1.32.4
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-json v0.10.5
Step #0 - "install-dependencies": go: downloading github.com/felixge/httpsnoop v1.0.4
Step #0 - "install-dependencies": go: downloading github.com/zeebo/xxh3 v1.0.2
Step #0 - "install-dependencies": go: downloading github.com/google/flatbuffers v25.2.10+incompatible
Step #0 - "install-dependencies": go: downloading github.com/pierrec/lz4/v4 v4.1.22
Step #0 - "install-dependencies": go: downloading github.com/xdg-go/pbkdf2 v1.0.0
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-20250501225837-2ac532fd4443
Step #0 - "install-dependencies": go: downloading github.com/klauspost/cpuid/v2 v2.2.11
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.24.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 golang.org/x/mod v0.25.0
Step #0 - "install-dependencies": go: downloading modernc.org/libc v1.66.3
Step #0 - "install-dependencies": go: downloading modernc.org/memory v1.11.0
Step #0 - "install-dependencies": go: downloading github.com/dustin/go-humanize v1.0.1
Step #0 - "install-dependencies": go: downloading github.com/mattn/go-isatty v0.0.20
Step #0 - "install-dependencies": go: downloading modernc.org/mathutil v1.7.1
Step #0 - "install-dependencies": go: downloading github.com/ncruces/go-strftime v0.1.9
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 #24 - "alloydbwaitforoperation"
Starting Step #17 - "sqlite"
Starting Step #7 - "dataplex"
Starting Step #18 - "couchbase"
Starting Step #20 - "valkey"
Starting Step #13 - "mysql"
Starting Step #12 - "cloud-sql-mysql"
Starting Step #9 - "spanner"
Starting Step #11 - "cloud-sql-mssql"
Starting Step #10 - "neo4j"
Starting Step #4 - "alloydb-ai-nl"
Starting Step #6 - "bigquery"
Starting Step #14 - "mssql"
Starting Step #3 - "alloydb-pg"
Starting Step #23 - "duckdb"
Starting Step #16 - "http"
Starting Step #22 - "looker"
Starting Step #8 - "postgres"
Starting Step #5 - "bigtable"
Starting Step #21 - "firestore"
Starting Step #15 - "dgraph"
Starting Step #19 - "redis"
Starting Step #2 - "cloud-sql-pg"
Step #24 - "alloydbwaitforoperation": Already have image (with digest): golang:1
Step #22 - "looker": Already have image (with digest): golang:1
Step #4 - "alloydb-ai-nl": Already have image (with digest): golang:1
Step #13 - "mysql": Already have image (with digest): golang:1
Step #23 - "duckdb": Already have image (with digest): golang:1
Step #2 - "cloud-sql-pg": Already have image (with digest): golang:1
Step #8 - "postgres": Already have image (with digest): golang:1
Step #10 - "neo4j": Already have image (with digest): golang:1
Step #11 - "cloud-sql-mssql": Already have image (with digest): golang:1
Step #7 - "dataplex": Already have image (with digest): golang:1
Step #9 - "spanner": Already have image (with digest): golang:1
Step #18 - "couchbase": Already have image (with digest): golang:1
Step #21 - "firestore": Already have image (with digest): golang:1
Step #15 - "dgraph": Already have image (with digest): golang:1
Step #12 - "cloud-sql-mysql": Already have image (with digest): golang:1
Step #16 - "http": Already have image (with digest): golang:1
Step #5 - "bigtable": Already have image (with digest): golang:1
Step #19 - "redis": Already have image (with digest): golang:1
Step #17 - "sqlite": Already have image (with digest): golang:1
Step #20 - "valkey": Already have image (with digest): golang:1
Step #6 - "bigquery": Already have image (with digest): golang:1
Step #3 - "alloydb-pg": Already have image (with digest): golang:1
Step #14 - "mssql": Already have image (with digest): golang:1
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints
Step #9 - "spanner": === RUN   TestSpannerToolEndpoints
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints/successful_operation
Step #24 - "alloydbwaitforoperation": 2025-08-01T20:52:37.794653729Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/wait-for-op1/invoke" method: "POST" path: "/api/tool/wait-for-op1/invoke" remoteIP: "127.0.0.1:53066" proto: "HTTP/1.1" requestID: "39c3bb26f163/el1Hwc4Jzy-000001"} httpResponse: {status: 200 bytes: 96 elapsed: 2.474563} 
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints/failed_operation
Step #24 - "alloydbwaitforoperation": 2025-08-01T20:52:37.798735039Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/wait-for-op2/invoke" method: "POST" path: "/api/tool/wait-for-op2/invoke" remoteIP: "127.0.0.1:53066" proto: "HTTP/1.1" requestID: "39c3bb26f163/el1Hwc4Jzy-000002"} httpResponse: {status: 400 bytes: 174 elapsed: 2.181331} 
Step #24 - "alloydbwaitforoperation": --- PASS: TestWaitToolEndpoints (0.05s)
Step #24 - "alloydbwaitforoperation":     --- PASS: TestWaitToolEndpoints/successful_operation (0.00s)
Step #24 - "alloydbwaitforoperation":     --- PASS: TestWaitToolEndpoints/failed_operation (0.00s)
Step #24 - "alloydbwaitforoperation": PASS
Step #24 - "alloydbwaitforoperation": coverage: 4.7% of statements in ./internal/sources/..., ./internal/tools/...
Step #23 - "duckdb": === RUN   TestDuckDb
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/get_my-simple-tool
Step #21 - "firestore": 2025-08-01T20:52:38.013189306Z 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:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000001"} httpResponse: {status: 200 bytes: 411 elapsed: 0.566673} 
Step #21 - "firestore": 2025-08-01T20:52:38.015428908Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000002"} httpResponse: {status: 200 bytes: 196 elapsed: 0.711874} 
Step #21 - "firestore": 2025-08-01T20:52:38.017053236Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000003"} httpResponse: {status: 202 bytes: 0 elapsed: 0.390692} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_my-param-tool
Step #23 - "duckdb": === RUN   TestDuckDb/get_my-simple-tool
Step #23 - "duckdb": 2025-08-01T20:52:38.023110776Z 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:53084" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000001"} httpResponse: {status: 200 bytes: 168 elapsed: 0.697734} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints
Step #21 - "firestore": 2025-08-01T20:52:38.085745114Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000004"} httpResponse: {status: 200 bytes: 384 elapsed: 67.631202} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_invalid_tool
Step #21 - "firestore": 2025-08-01T20:52:38.087617403Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000005"} httpResponse: {status: 200 bytes: 131 elapsed: 0.409772} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_my-param-tool_without_parameters
Step #21 - "firestore": 2025-08-01T20:52:38.089213621Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000006"} httpResponse: {status: 200 bytes: 160 elapsed: 0.308202} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_my-auth-required-tool
Step #21 - "firestore": 2025-08-01T20:52:38.09100142Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000007"} httpResponse: {status: 200 bytes: 165 elapsed: 0.298472} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/MCP_Invoke_my-fail-tool
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints/get_my-simple-tool
Step #21 - "firestore": 2025-08-01T20:52:38.113328203Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000008"} httpResponse: {status: 200 bytes: 140 elapsed: 20.933086} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/get_single_document
Step #15 - "dgraph": 2025-08-01T20:52:38.114529139Z 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:53098" proto: "HTTP/1.1" requestID: "3e08c3a89c25/G3hsUq2Ztt-000001"} httpResponse: {status: 200 bytes: 172 elapsed: 0.611513} 
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints/invoke_my-simple-dql-tool
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-simple-tool
Step #23 - "duckdb": 2025-08-01T20:52:38.125063463Z 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:53084" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 1.373397} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-tool
Step #23 - "duckdb": 2025-08-01T20:52:38.129295384Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:53084" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000003"} httpResponse: {status: 200 bytes: 55 elapsed: 2.259231} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-tool-by-id_with_nil_response
Step #23 - "duckdb": 2025-08-01T20:52:38.134598471Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-id/invoke" method: "POST" path: "/api/tool/my-tool-by-id/invoke" remoteIP: "127.0.0.1:53084" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 3.783888} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-tool-by-name_with_nil_response
Step #23 - "duckdb": 2025-08-01T20:52:38.137457246Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool-by-name/invoke" method: "POST" path: "/api/tool/my-tool-by-name/invoke" remoteIP: "127.0.0.1:53084" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000005"} httpResponse: {status: 200 bytes: 18 elapsed: 1.536088} 
Step #23 - "duckdb": === RUN   TestDuckDb/Invoke_my-tool_without_parameters
Step #23 - "duckdb": 2025-08-01T20:52:38.139207995Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:53084" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000006"} httpResponse: {status: 400 bytes: 98 elapsed: 0.404142} 
Step #23 - "duckdb": === RUN   TestDuckDb/Invoke_my-tool_with_insufficient_parameters
Step #23 - "duckdb": 2025-08-01T20:52:38.141088014Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-tool/invoke" method: "POST" path: "/api/tool/my-tool/invoke" remoteIP: "127.0.0.1:53102" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000007"} httpResponse: {status: 400 bytes: 100 elapsed: 0.300421} 
Step #23 - "duckdb": === RUN   TestDuckDb/invoke_my-array-tool
Step #23 - "duckdb": 2025-08-01T20:52:38.149647057Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-array-tool/invoke" method: "POST" path: "/api/tool/my-array-tool/invoke" remoteIP: "127.0.0.1:53108" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000008"} httpResponse: {status: 200 bytes: 55 elapsed: 6.958305} 
Step #23 - "duckdb": === RUN   TestDuckDb/Invoke_my-auth-tool_with_auth_token
Step #21 - "firestore": 2025-08-01T20:52:38.154012549Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/firestore-get-docs/invoke" method: "POST" path: "/api/tool/firestore-get-docs/invoke" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000009"} httpResponse: {status: 200 bytes: 311 elapsed: 39.044808} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/get_multiple_documents
Step #21 - "firestore": 2025-08-01T20:52:38.17973409Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/firestore-get-docs/invoke" method: "POST" path: "/api/tool/firestore-get-docs/invoke" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000010"} httpResponse: {status: 200 bytes: 607 elapsed: 24.520814} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/get_non-existent_document
Step #21 - "firestore": 2025-08-01T20:52:38.21529386Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/firestore-get-docs/invoke" method: "POST" path: "/api/tool/firestore-get-docs/invoke" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000011"} httpResponse: {status: 200 bytes: 88 elapsed: 33.988962} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/missing_documentPaths_parameter
Step #21 - "firestore": 2025-08-01T20:52:38.217196059Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/firestore-get-docs/invoke" method: "POST" path: "/api/tool/firestore-get-docs/invoke" remoteIP: "127.0.0.1:53080" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000012"} httpResponse: {status: 400 bytes: 109 elapsed: 0.353292} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/empty_documentPaths_array
Step #21 - "firestore": 2025-08-01T20:52:38.218871878Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/firestore-get-docs/invoke" method: "POST" path: "/api/tool/firestore-get-docs/invoke" remoteIP: "127.0.0.1:53120" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000013"} httpResponse: {status: 400 bytes: 104 elapsed: 0.341892} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/list_root_collections
Step #21 - "firestore": 2025-08-01T20:52:38.265774126Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/firestore-list-colls/invoke" method: "POST" path: "/api/tool/firestore-list-colls/invoke" remoteIP: "127.0.0.1:53122" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000014"} httpResponse: {status: 200 bytes: 1131 elapsed: 45.301410} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/list_subcollections
Step #5 - "bigtable": === RUN   TestBigtableToolEndpoints
Step #21 - "firestore": 2025-08-01T20:52:38.299496307Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/firestore-list-colls/invoke" method: "POST" path: "/api/tool/firestore-list-colls/invoke" remoteIP: "127.0.0.1:53122" proto: "HTTP/1.1" requestID: "62fe2b99daa4/5HYiwa2uHN-000015"} httpResponse: {status: 200 bytes: 456 elapsed: 32.201613} 
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints/list_collections_for_non-existent_parent
Step #23 - "duckdb": 2025-08-01T20:52:38.32178795Z 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:53108" proto: "HTTP/1.1" requestID: "5a2bb863cbd9/ivBjov72mO-000009"} httpResponse: {status: 200 bytes: 
...
[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%22356844b0-e9a3-43e6-9391-86330acc8580%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616.]
...
ataset-ids-tool/invoke" remoteIP: "127.0.0.1:53468" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000048"} httpResponse: {status: 400 bytes: 209 elapsed: 501.278270} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool
Step #6 - "bigquery": 2025-08-01T20:53:30.718356307Z 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:39304" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000049"} httpResponse: {status: 200 bytes: 18842 elapsed: 3592.756796} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-08-01T20:53:30.72300155Z 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:39304" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000050"} httpResponse: {status: 400 bytes: 103 elapsed: 0.332172} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool
Step #6 - "bigquery": 2025-08-01T20:53:30.927186625Z 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:39316" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000051"} httpResponse: {status: 200 bytes: 1222 elapsed: 202.366476} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_correct_project
Step #6 - "bigquery": 2025-08-01T20:53:31.12358604Z 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:39316" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000052"} httpResponse: {status: 200 bytes: 1222 elapsed: 194.600626} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-08-01T20:53:31.199395504Z 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:39316" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000053"} httpResponse: {status: 400 bytes: 440 elapsed: 74.083106} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-08-01T20:53:31.201485015Z 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:39330" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000054"} httpResponse: {status: 400 bytes: 103 elapsed: 0.354471} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:31.421324329Z 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:39334" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000055"} httpResponse: {status: 200 bytes: 1222 elapsed: 218.448577} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:31.423237669Z 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:39334" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000056"} httpResponse: {status: 401 bytes: 119 elapsed: 0.283441} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_without_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:31.425180168Z 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:39342" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000057"} httpResponse: {status: 401 bytes: 119 elapsed: 0.221256} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body
Step #6 - "bigquery": 2025-08-01T20:53:31.428147725Z 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:39344" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000058"} httpResponse: {status: 400 bytes: 103 elapsed: 0.322734} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool
Step #6 - "bigquery": 2025-08-01T20:53:31.535126969Z 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:39350" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000059"} httpResponse: {status: 200 bytes: 164 elapsed: 105.362013} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body#01
Step #6 - "bigquery": 2025-08-01T20:53:31.536978966Z 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:39350" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000060"} httpResponse: {status: 400 bytes: 103 elapsed: 0.335225} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:31.656611876Z 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:39354" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000061"} httpResponse: {status: 200 bytes: 164 elapsed: 117.945699} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project
Step #6 - "bigquery": 2025-08-01T20:53:31.813683581Z 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:39354" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000062"} httpResponse: {status: 200 bytes: 164 elapsed: 155.512254} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project
Step #6 - "bigquery": 2025-08-01T20:53:31.910617463Z 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:39354" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000063"} httpResponse: {status: 400 bytes: 436 elapsed: 95.218572} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:31.913083909Z 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:39360" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000064"} httpResponse: {status: 401 bytes: 119 elapsed: 0.262715} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_without_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:31.915147902Z 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:39372" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000065"} httpResponse: {status: 401 bytes: 119 elapsed: 0.257465} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-08-01T20:53:31.918379825Z 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:39388" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000066"} httpResponse: {status: 400 bytes: 103 elapsed: 0.257736} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool
Step #6 - "bigquery": 2025-08-01T20:53:32.049882965Z 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:39402" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000067"} httpResponse: {status: 200 bytes: 1495 elapsed: 130.068144} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-08-01T20:53:32.05180819Z 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:39402" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000068"} httpResponse: {status: 400 bytes: 103 elapsed: 0.279666} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:32.226165499Z 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:52050" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000069"} httpResponse: {status: 200 bytes: 1495 elapsed: 172.596141} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project
Step #6 - "bigquery": 2025-08-01T20:53:32.373308471Z 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:52050" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000070"} httpResponse: {status: 200 bytes: 1495 elapsed: 145.457161} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-08-01T20:53:32.404662795Z 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:52050" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000071"} httpResponse: {status: 400 bytes: 507 elapsed: 29.788322} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:32.406879636Z 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:52064" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000072"} httpResponse: {status: 401 bytes: 119 elapsed: 0.246475} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_without_auth_token
Step #6 - "bigquery": 2025-08-01T20:53:32.408687504Z 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:52072" proto: "HTTP/1.1" requestID: "cf25845d1b1a/DTdNRlmc9N-000073"} httpResponse: {status: 401 bytes: 119 elapsed: 0.195827} 
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints (57.14s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/get_my-simple-tool (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-simple-tool (0.56s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-tool (0.98s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-tool-by-id_with_nil_response (1.67s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-tool-by-name_with_nil_response (0.38s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-tool_without_parameters (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-tool_with_insufficient_parameters (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-array-tool (1.09s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.95s)
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.72s)
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-tool (0.75s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_invalid_tool (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-tool_without_parameters (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/MCP_Invoke_my-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.10s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_create-table-templateParams-tool (0.82s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool (3.02s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool#01 (2.68s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-tool (1.82s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-combined-tool (0.91s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-combined-tool_with_no_results (1.12s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-fields-templateParams-tool (0.86s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.98s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_drop-table-templateParams-tool (0.84s)
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.58s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_create_table (0.09s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_with_data_present_in_table (1.36s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_with_no_matching_rows (0.95s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_drop_table (0.10s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_insert_entry (2.46s)
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.55s)
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-scalar-datatype-tool_with_values (0.98s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-scalar-datatype-tool_with_missing_params (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-array-datatype-tool (1.39s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool (3.95s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_project (3.63s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_non-existent_project (0.50s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool (3.60s)
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.20s)
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.08s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-get-dataset-info-tool_without_body (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_auth_token (0.22s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_without_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool (0.11s)
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.12s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project (0.16s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project (0.10s)
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.17s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project (0.15s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project (0.03s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_without_auth_token (0.00s)
Step #6 - "bigquery": PASS
Step #6 - "bigquery": coverage: 13.1% of statements in ./internal/sources/..., ./internal/tools/...
Step #6 - "bigquery": Calculating coverage for BigQuery...
Step #6 - "bigquery": BigQuery total coverage: 84.4%
Step #6 - "bigquery": Coverage for BigQuery is sufficient.
Finished Step #6 - "bigquery"
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/get_my-dataplex-search-entries-tool
Step #7 - "dataplex": 2025-08-01T20:54:39.467110282Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-search-entries-tool/" method: "GET" path: "/api/tool/my-dataplex-search-entries-tool/" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000001"} httpResponse: {status: 200 bytes: 1068 elapsed: 0.736370} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/get_my-dataplex-lookup-entry-tool
Step #7 - "dataplex": 2025-08-01T20:54:39.468817512Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/" method: "GET" path: "/api/tool/my-dataplex-lookup-entry-tool/" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000002"} httpResponse: {status: 200 bytes: 1736 elapsed: 0.231060} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found
Step #7 - "dataplex": 2025-08-01T20:54:40.916045487Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000003"} httpResponse: {status: 200 bytes: 1620 elapsed: 1444.099414} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_with_Authorization_-_Entry_Found
Step #7 - "dataplex": 2025-08-01T20:54:43.279895675Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000004"} httpResponse: {status: 200 bytes: 1620 elapsed: 2361.843998} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token
Step #7 - "dataplex": 2025-08-01T20:54:43.282011945Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000005"} httpResponse: {status: 401 bytes: 119 elapsed: 0.237160} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token
Step #7 - "dataplex": 2025-08-01T20:54:43.283255185Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000006"} httpResponse: {status: 401 bytes: 119 elapsed: 0.109931} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_Not_Found
Step #7 - "dataplex": 2025-08-01T20:54:45.816393234Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-search-entries-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-search-entries-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000007"} httpResponse: {status: 200 bytes: 18 elapsed: 2532.204008} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found#01
Step #7 - "dataplex": 2025-08-01T20:54:46.214967879Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000008"} httpResponse: {status: 200 bytes: 1404 elapsed: 396.336615} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_Authorization
Step #7 - "dataplex": 2025-08-01T20:54:46.543815198Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000009"} httpResponse: {status: 200 bytes: 1404 elapsed: 327.049118} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token#01
Step #7 - "dataplex": 2025-08-01T20:54:46.545972758Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000010"} httpResponse: {status: 401 bytes: 119 elapsed: 0.201710} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token#01
Step #7 - "dataplex": 2025-08-01T20:54:46.547609739Z INFO Response: 401 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-auth-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000011"} httpResponse: {status: 401 bytes: 119 elapsed: 0.185990} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_Not_Found_or_Permission_Denied
Step #7 - "dataplex": 2025-08-01T20:54:46.643698368Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000012"} httpResponse: {status: 400 bytes: 422 elapsed: 94.833558} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_Basic_View
Step #7 - "dataplex": 2025-08-01T20:54:46.92217061Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000013"} httpResponse: {status: 200 bytes: 1454 elapsed: 277.049773} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_with_Custom_View_without_Aspect_Types
Step #7 - "dataplex": 2025-08-01T20:54:47.254112779Z INFO Response: 400 Client Error service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000014"} httpResponse: {status: 400 bytes: 318 elapsed: 329.981498} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_only_Schema_Aspect
Step #7 - "dataplex": 2025-08-01T20:54:47.606201763Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/my-dataplex-lookup-entry-tool/invoke" method: "POST" path: "/api/tool/my-dataplex-lookup-entry-tool/invoke" remoteIP: "127.0.0.1:48554" proto: "HTTP/1.1" requestID: "b373d5c2da87/qzbYQ4oaGo-000015"} httpResponse: {status: 200 bytes: 1905 elapsed: 350.802202} 
Step #7 - "dataplex": --- PASS: TestDataplexToolEndpoints (130.21s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/get_my-dataplex-search-entries-tool (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/get_my-dataplex-lookup-entry-tool (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found (1.45s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_with_Authorization_-_Entry_Found (2.36s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Entry_Not_Found (2.53s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found#01 (0.40s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_Authorization (0.33s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token#01 (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token#01 (0.00s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Entry_Not_Found_or_Permission_Denied (0.10s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_Basic_View (0.28s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Entry_with_Custom_View_without_Aspect_Types (0.33s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_only_Schema_Aspect (0.35s)
Step #7 - "dataplex": PASS
Step #7 - "dataplex": coverage: 6.2% of statements in ./internal/sources/..., ./internal/tools/...
Step #7 - "dataplex": Calculating coverage for Dataplex...
Step #7 - "dataplex": Dataplex total coverage: 84.5%
Step #7 - "dataplex": Coverage for Dataplex is sufficient.
Finished Step #7 - "dataplex"
PUSH
DONE

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22356844b0-e9a3-43e6-9391-86330acc8580%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616