Skip to content

feat: support tidb in data source, sql tool, and execute sql tool#829

Merged
Yuan325 merged 19 commits into
googleapis:mainfrom
Icemap:feat-tidb-support
Aug 2, 2025
Merged

feat: support tidb in data source, sql tool, and execute sql tool#829
Yuan325 merged 19 commits into
googleapis:mainfrom
Icemap:feat-tidb-support

Merge branch 'main' into feat-tidb-support

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

Summary

Build Information

Trigger integration-test-pr
Build fdfb0faa-f5df-482b-afa8-8741e9f22ee8
Start 2025-08-02T00:44:18-07:00
Duration 4m24.132s
Status SUCCESS

Steps

Step Status Duration
install-dependencies SUCCESS 15.014s
compile-test-binary SUCCESS 1m45.066s
cloud-sql-pg SUCCESS 21.251s
alloydb-pg SUCCESS 20.134s
alloydb-ai-nl SUCCESS 10.393s
bigtable SUCCESS 18.093s
bigquery SUCCESS 54.621s
dataplex SUCCESS 2m16.368s
postgres SUCCESS 8.892s
spanner SUCCESS 39.107s
neo4j SUCCESS 5.741s
cloud-sql-mssql SUCCESS 9.253s
cloud-sql-mysql SUCCESS 7.349s
mysql SUCCESS 6.83s
mssql SUCCESS 7.294s
dgraph SUCCESS 4.756s
http SUCCESS 4.533s
sqlite SUCCESS 4.25s
couchbase SUCCESS 26.239s
redis SUCCESS 7.174s
valkey SUCCESS 5.384s
firestore SUCCESS 5.263s
looker SUCCESS 13.116s
duckdb SUCCESS 4.183s
alloydbwaitforoperation SUCCESS 4.729s
tidb SUCCESS 6.307s

Details


starting build "fdfb0faa-f5df-482b-afa8-8741e9f22ee8"

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            ced870260b65829f0bd8ccf9e4e7c93b85ea1a62 -> FETCH_HEAD
HEAD is now at ced8702 Merge branch 'main' into feat-tidb-support
GitCommit:
ced870260b65829f0bd8ccf9e4e7c93b85ea1a62
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 github.com/go-chi/chi/v5 v5.2.2
Step #0 - "install-dependencies": go: downloading github.com/go-chi/httplog/v2 v2.1.1
Step #0 - "install-dependencies": go: downloading github.com/go-chi/render v1.0.3
Step #0 - "install-dependencies": go: downloading github.com/goccy/go-yaml v1.18.0
Step #0 - "install-dependencies": go: downloading github.com/google/uuid v1.6.0
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgx/v5 v5.7.5
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/trace v1.37.0
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/otel/metric v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/redis/go-redis/v9 v9.11.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/spanner v1.83.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/dataplex v1.26.0
Step #0 - "install-dependencies": go: downloading google.golang.org/api v0.244.0
Step #0 - "install-dependencies": go: downloading github.com/valkey-io/valkey-go v1.0.63
Step #0 - "install-dependencies": go: downloading go.mongodb.org/mongo-driver v1.17.4
Step #0 - "install-dependencies": go: downloading github.com/looker-open-source/sdk-codegen/go v0.25.10
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/cloudsqlconn v1.17.3
Step #0 - "install-dependencies": go: downloading github.com/neo4j/neo4j-go-driver/v5 v5.28.1
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/firestore v1.18.0
Step #0 - "install-dependencies": go: downloading modernc.org/sqlite v1.38.2
Step #0 - "install-dependencies": go: downloading github.com/go-sql-driver/mysql v1.9.3
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigquery v1.69.0
Step #0 - "install-dependencies": go: downloading github.com/marcboeker/go-duckdb/v2 v2.3.4
Step #0 - "install-dependencies": go: downloading github.com/microsoft/go-mssqldb v1.9.2
Step #0 - "install-dependencies": go: downloading golang.org/x/oauth2 v0.30.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydbconn v1.15.4
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/bigtable v1.38.0
Step #0 - "install-dependencies": go: downloading github.com/fsnotify/fsnotify v1.9.0
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go v0.121.2
Step #0 - "install-dependencies": go: downloading github.com/couchbase/gocb/v2 v2.10.1
Step #0 - "install-dependencies": go: downloading github.com/spf13/cobra v1.9.1
Step #0 - "install-dependencies": go: downloading github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0
Step #0 - "install-dependencies": go: downloading github.com/couchbase/tools-common/http v1.0.9
Step #0 - "install-dependencies": go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.62.0
Step #0 - "install-dependencies": go: downloading github.com/thlib/go-timezone-local v0.0.7
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 go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp 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 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0
Step #0 - "install-dependencies": go: downloading github.com/ajg/form v1.5.1
Step #0 - "install-dependencies": go: downloading filippo.io/edwards25519 v1.1.0
Step #0 - "install-dependencies": go: downloading gopkg.in/ini.v1 v1.67.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 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 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/trace v1.11.6
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0
Step #0 - "install-dependencies": go: downloading google.golang.org/genproto v0.0.0-20250603155806-513f23925822
Step #0 - "install-dependencies": go: downloading golang.org/x/sys v0.34.0
Step #0 - "install-dependencies": go: downloading github.com/inconshreveable/mousetrap v1.1.0
Step #0 - "install-dependencies": go: downloading github.com/spf13/pflag v1.0.6
Step #0 - "install-dependencies": go: downloading 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 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 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 golang.org/x/net v0.42.0
Step #0 - "install-dependencies": go: downloading cloud.google.com/go/alloydb v1.18.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 github.com/jackc/puddle/v2 v2.2.2
Step #0 - "install-dependencies": go: downloading golang.org/x/time v0.12.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/text v0.27.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/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/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/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 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/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/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
Step #0 - "install-dependencies": go: downloading github.com/jackc/pgpassfile v1.0.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/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/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/go-playground/locales v0.14.1
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/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/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/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 github.com/ncruces/go-strftime v0.1.9
Step #0 - "install-dependencies": go: downloading modernc.org/mathutil v1.7.1
Step #0 - "install-dependencies": go: downloading github.com/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 #9 - "spanner"
Starting Step #2 - "cloud-sql-pg"
Starting Step #12 - "cloud-sql-mysql"
Starting Step #22 - "looker"
Starting Step #20 - "valkey"
Starting Step #19 - "redis"
Starting Step #18 - "couchbase"
Starting Step #15 - "dgraph"
Starting Step #14 - "mssql"
Starting Step #17 - "sqlite"
Starting Step #6 - "bigquery"
Starting Step #4 - "alloydb-ai-nl"
Starting Step #11 - "cloud-sql-mssql"
Starting Step #3 - "alloydb-pg"
Starting Step #8 - "postgres"
Starting Step #13 - "mysql"
Starting Step #16 - "http"
Starting Step #21 - "firestore"
Starting Step #23 - "duckdb"
Starting Step #10 - "neo4j"
Starting Step #5 - "bigtable"
Starting Step #7 - "dataplex"
Starting Step #25 - "tidb"
Step #8 - "postgres": Already have image (with digest): golang:1
Step #6 - "bigquery": Already have image (with digest): golang:1
Step #23 - "duckdb": Already have image (with digest): golang:1
Step #7 - "dataplex": Already have image (with digest): golang:1
Step #13 - "mysql": Already have image (with digest): golang:1
Step #3 - "alloydb-pg": Already have image (with digest): golang:1
Step #24 - "alloydbwaitforoperation": Already have image (with digest): golang:1
Step #25 - "tidb": Already have image (with digest): golang:1
Step #16 - "http": Already have image (with digest): golang:1
Step #12 - "cloud-sql-mysql": Already have image (with digest): golang:1
Step #9 - "spanner": Already have image (with digest): golang:1
Step #22 - "looker": Already have image (with digest): golang:1
Step #18 - "couchbase": Already have image (with digest): golang:1
Step #11 - "cloud-sql-mssql": 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 #10 - "neo4j": Already have image (with digest): golang:1
Step #4 - "alloydb-ai-nl": Already have image (with digest): golang:1
Step #15 - "dgraph": Already have image (with digest): golang:1
Step #5 - "bigtable": Already have image (with digest): golang:1
Step #21 - "firestore": Already have image (with digest): golang:1
Step #2 - "cloud-sql-pg": Already have image (with digest): golang:1
Step #20 - "valkey": Already have image (with digest): golang:1
Step #14 - "mssql": Already have image (with digest): golang:1
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints/successful_operation
Step #24 - "alloydbwaitforoperation": 2025-08-02T07:46:23.355475389Z 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:56744" proto: "HTTP/1.1" requestID: "e740fdc49f87/xyr6JCIXAd-000001"} httpResponse: {status: 200 bytes: 96 elapsed: 1.856724} 
Step #24 - "alloydbwaitforoperation": === RUN   TestWaitToolEndpoints/failed_operation
Step #24 - "alloydbwaitforoperation": 2025-08-02T07:46:23.358304163Z 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:56744" proto: "HTTP/1.1" requestID: "e740fdc49f87/xyr6JCIXAd-000002"} httpResponse: {status: 400 bytes: 174 elapsed: 1.444562} 
Step #24 - "alloydbwaitforoperation": --- PASS: TestWaitToolEndpoints (0.02s)
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 #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/get_my-simple-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.443668971Z 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:56748" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000001"} httpResponse: {status: 200 bytes: 168 elapsed: 0.531801} 
Step #5 - "bigtable": === RUN   TestBigtableToolEndpoints
Step #21 - "firestore": === RUN   TestFirestoreToolEndpoints
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-simple-tool
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints/get_my-simple-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.629437503Z 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:56748" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000002"} httpResponse: {status: 200 bytes: 25 elapsed: 0.777641} 
Step #15 - "dgraph": 2025-08-02T07:46:23.629818033Z 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:56764" proto: "HTTP/1.1" requestID: "f6b967aa868b/NQOXXCt8Pm-000001"} httpResponse: {status: 200 bytes: 172 elapsed: 0.512061} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-tool
Step #15 - "dgraph": === RUN   TestDgraphToolEndpoints/invoke_my-simple-dql-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.631664367Z 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:56748" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000003"} httpResponse: {status: 200 bytes: 73 elapsed: 1.151973} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-tool-by-id_with_nil_response
Step #17 - "sqlite": 2025-08-02T07:46:23.63387768Z 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:56748" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000004"} httpResponse: {status: 200 bytes: 40 elapsed: 0.997671} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-tool-by-name_with_nil_response
Step #17 - "sqlite": 2025-08-02T07:46:23.635692904Z 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:56748" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000005"} httpResponse: {status: 200 bytes: 18 elapsed: 0.858801} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-tool_without_parameters
Step #17 - "sqlite": 2025-08-02T07:46:23.637103656Z 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:56748" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000006"} httpResponse: {status: 400 bytes: 98 elapsed: 0.263151} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-tool_with_insufficient_parameters
Step #17 - "sqlite": 2025-08-02T07:46:23.638471218Z 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:56772" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000007"} httpResponse: {status: 400 bytes: 100 elapsed: 0.323960} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_my-array-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.640430151Z INFO Response: 400 Client Error 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:56776" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000008"} httpResponse: {status: 400 bytes: 175 elapsed: 0.557531} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_auth_token
Step #23 - "duckdb": === RUN   TestDuckDb
Step #16 - "http": === RUN   TestHttpToolEndpoints
Step #17 - "sqlite": 2025-08-02T07:46:23.771113148Z 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:56784" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000009"} httpResponse: {status: 200 bytes: 36 elapsed: 129.389904} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_with_invalid_auth_token
Step #17 - "sqlite": 2025-08-02T07:46:23.77248146Z 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:56784" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000010"} httpResponse: {status: 400 bytes: 159 elapsed: 0.279450} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-tool_without_auth_token
Step #17 - "sqlite": 2025-08-02T07:46:23.773924303Z 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:56800" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000011"} httpResponse: {status: 400 bytes: 159 elapsed: 0.266361} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_with_auth_token
Step #17 - "sqlite": 2025-08-02T07:46:23.776640178Z 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:56806" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000012"} httpResponse: {status: 200 bytes: 25 elapsed: 1.272652} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_with_invalid_auth_token
Step #17 - "sqlite": 2025-08-02T07:46:23.77811702Z 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:56806" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000013"} httpResponse: {status: 401 bytes: 119 elapsed: 0.227481} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/Invoke_my-auth-required-tool_without_auth_token
Step #17 - "sqlite": 2025-08-02T07:46:23.779665473Z 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:56814" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000014"} httpResponse: {status: 400 bytes: 159 elapsed: 0.244930} 
Step #17 - "sqlite": 2025-08-02T07:46:23.781347076Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000015"} httpResponse: {status: 200 bytes: 196 elapsed: 0.602112} 
Step #17 - "sqlite": 2025-08-02T07:46:23.782326537Z INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000016"} httpResponse: {status: 202 bytes: 0 elapsed: 0.262660} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.785123462Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000017"} httpResponse: {status: 200 bytes: 164 elapsed: 1.631983} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_invalid_tool
Step #17 - "sqlite": 2025-08-02T07:46:23.786355974Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000018"} httpResponse: {status: 200 bytes: 131 elapsed: 0.292161} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-tool_without_parameters
Step #17 - "sqlite": 2025-08-02T07:46:23.787839947Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000019"} httpResponse: {status: 200 bytes: 149 elapsed: 0.355940} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-tool_with_insufficient_parameters
Step #17 - "sqlite": 2025-08-02T07:46:23.789165409Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000020"} httpResponse: {status: 200 bytes: 156 elapsed: 0.310151} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-auth-required-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.790483331Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000021"} httpResponse: {status: 200 bytes: 156 elapsed: 0.285071} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/MCP_Invoke_my-fail-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.791988414Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp" method: "POST" path: "/mcp" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000022"} httpResponse: {status: 200 bytes: 180 elapsed: 0.468291} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_create-table-templateParams-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.802165251Z INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/api/tool/create-table-templateParams-tool/invoke" method: "POST" path: "/api/tool/create-table-templateParams-tool/invoke" remoteIP: "127.0.0.1:56826" proto: "HTTP/1.1" requestID: "f0b7e8b60025/qjokhYEVrL-000023"} httpResponse: {status: 200 bytes: 18 elapsed: 9.139965} 
Step #17 - "sqlite": === RUN   TestSQLiteToolEndpoint/invoke_insert-table-templateParams-tool
Step #17 - "sqlite": 2025-08-02T07:46:23.812590729Z 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
...
[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%22fdfb0faa-f5df-482b-afa8-8741e9f22ee8%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:39288" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000048"} httpResponse: {status: 400 bytes: 209 elapsed: 471.105685} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool
Step #6 - "bigquery": 2025-08-02T07:47:10.613487837Z 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:39290" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000049"} httpResponse: {status: 200 bytes: 19062 elapsed: 2601.830183} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-08-02T07:47:10.617549184Z 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:39290" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000050"} httpResponse: {status: 400 bytes: 103 elapsed: 0.245860} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-dataset-info-tool
Step #6 - "bigquery": 2025-08-02T07:47:10.822142168Z 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:57192" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000051"} httpResponse: {status: 200 bytes: 1222 elapsed: 203.283562} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_correct_project
Step #6 - "bigquery": 2025-08-02T07:47:11.018115007Z 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:57192" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000052"} httpResponse: {status: 200 bytes: 1222 elapsed: 194.645127} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-08-02T07:47:11.106628411Z 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:57192" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000053"} httpResponse: {status: 400 bytes: 440 elapsed: 86.639640} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-dataset-info-tool_without_body
Step #6 - "bigquery": 2025-08-02T07:47:11.108193783Z 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:57206" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000054"} httpResponse: {status: 400 bytes: 103 elapsed: 0.286930} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:11.31981871Z 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:57214" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000055"} httpResponse: {status: 200 bytes: 1222 elapsed: 210.306164} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:11.321517043Z 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:57214" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000056"} httpResponse: {status: 401 bytes: 119 elapsed: 0.188640} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_without_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:11.323221146Z 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:57224" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000057"} httpResponse: {status: 401 bytes: 119 elapsed: 0.187130} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body
Step #6 - "bigquery": 2025-08-02T07:47:11.325953791Z 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:57236" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000058"} httpResponse: {status: 400 bytes: 103 elapsed: 0.302271} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool
Step #6 - "bigquery": 2025-08-02T07:47:11.464847101Z 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:57240" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000059"} httpResponse: {status: 200 bytes: 164 elapsed: 137.513278} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body#01
Step #6 - "bigquery": 2025-08-02T07:47:11.466323024Z 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:57240" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000060"} httpResponse: {status: 400 bytes: 103 elapsed: 0.274661} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:11.623616816Z 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:57254" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000061"} httpResponse: {status: 200 bytes: 164 elapsed: 155.880980} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project
Step #6 - "bigquery": 2025-08-02T07:47:11.890693248Z 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:57254" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000062"} httpResponse: {status: 200 bytes: 164 elapsed: 265.772690} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project
Step #6 - "bigquery": 2025-08-02T07:47:11.902077788Z 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:57254" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000063"} httpResponse: {status: 400 bytes: 436 elapsed: 9.983787} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:11.90346792Z 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:57260" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000064"} httpResponse: {status: 401 bytes: 119 elapsed: 0.198361} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_without_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:11.904779633Z 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:57272" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000065"} httpResponse: {status: 401 bytes: 119 elapsed: 0.184781} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-08-02T07:47:11.907482167Z 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:57280" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000066"} httpResponse: {status: 400 bytes: 103 elapsed: 0.270730} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-get-table-info-tool
Step #6 - "bigquery": 2025-08-02T07:47:12.037914823Z 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:57296" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000067"} httpResponse: {status: 200 bytes: 1495 elapsed: 128.987273} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/invoke_my-auth-get-table-info-tool_without_body
Step #6 - "bigquery": 2025-08-02T07:47:12.039445856Z 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:57296" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000068"} httpResponse: {status: 400 bytes: 103 elapsed: 0.228350} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:12.189616156Z 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:57300" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000069"} httpResponse: {status: 200 bytes: 1495 elapsed: 148.802058} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project
Step #6 - "bigquery": 2025-08-02T07:47:12.346971238Z 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:57300" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000070"} httpResponse: {status: 200 bytes: 1495 elapsed: 156.033640} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project
Step #6 - "bigquery": 2025-08-02T07:47:12.410161398Z 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:57300" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000071"} httpResponse: {status: 400 bytes: 507 elapsed: 61.781707} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_invalid_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:12.411862461Z 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:57302" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000072"} httpResponse: {status: 401 bytes: 119 elapsed: 0.222381} 
Step #6 - "bigquery": === RUN   TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_without_auth_token
Step #6 - "bigquery": 2025-08-02T07:47:12.413462014Z 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:57306" proto: "HTTP/1.1" requestID: "b7488627608e/8llir6cDcb-000073"} httpResponse: {status: 401 bytes: 119 elapsed: 0.171311} 
Step #6 - "bigquery": --- PASS: TestBigQueryToolEndpoints (50.52s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/get_my-simple-tool (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-simple-tool (0.63s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-tool (0.92s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-tool-by-id_with_nil_response (1.05s)
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.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-tool_with_auth_token (0.96s)
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.47s)
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.77s)
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.08s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_create-table-templateParams-tool (0.85s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool (2.31s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_insert-table-templateParams-tool#01 (2.73s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-tool (1.02s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-combined-tool (0.88s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-templateParams-combined-tool_with_no_results (0.94s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-fields-templateParams-tool (0.83s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_select-filter-templateParams-combined-tool (0.96s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_drop-table-templateParams-tool (0.83s)
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.51s)
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 (1.02s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_with_no_matching_rows (1.06s)
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.15s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-exec-sql-tool_without_body#01 (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-exec-sql-tool_with_auth_token (0.52s)
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 (1.14s)
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 (0.91s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool (3.79s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_project (3.62s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-dataset-ids-tool_with_non-existent_project (0.47s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-auth-list-dataset-ids-tool (2.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.09s)
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.21s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_with_invalid_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-dataset-info-tool_without_auth_token (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool (0.14s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/invoke_my-list-table-ids-tool_without_body#01 (0.00s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_auth_token (0.16s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_correct_project (0.27s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-list-table-ids-tool_with_non-existent_project (0.01s)
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.15s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_correct_project (0.16s)
Step #6 - "bigquery":     --- PASS: TestBigQueryToolEndpoints/Invoke_my-auth-get-table-info-tool_with_non-existent_project (0.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: 12.7% of statements in ./internal/sources/..., ./internal/tools/...
Step #6 - "bigquery": Calculating coverage for BigQuery...
Step #6 - "bigquery": BigQuery total coverage: 84.9%
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-02T07:48:28.009853892Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000001"} httpResponse: {status: 200 bytes: 1068 elapsed: 0.515261} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/get_my-dataplex-lookup-entry-tool
Step #7 - "dataplex": 2025-08-02T07:48:28.011207973Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000002"} httpResponse: {status: 200 bytes: 1736 elapsed: 0.215520} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found
Step #7 - "dataplex": 2025-08-02T07:48:30.397205032Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000003"} httpResponse: {status: 200 bytes: 1620 elapsed: 2383.130158} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_with_Authorization_-_Entry_Found
Step #7 - "dataplex": 2025-08-02T07:48:32.067178101Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000004"} httpResponse: {status: 200 bytes: 1620 elapsed: 1668.136998} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token
Step #7 - "dataplex": 2025-08-02T07:48:32.068795282Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000005"} httpResponse: {status: 401 bytes: 119 elapsed: 0.208381} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token
Step #7 - "dataplex": 2025-08-02T07:48:32.070274003Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000006"} httpResponse: {status: 401 bytes: 119 elapsed: 0.189580} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_Not_Found
Step #7 - "dataplex": 2025-08-02T07:48:34.169827533Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000007"} httpResponse: {status: 200 bytes: 18 elapsed: 2098.498260} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found#01
Step #7 - "dataplex": 2025-08-02T07:48:34.660515648Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000008"} httpResponse: {status: 200 bytes: 1404 elapsed: 488.044434} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_Authorization
Step #7 - "dataplex": 2025-08-02T07:48:35.038530567Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000009"} httpResponse: {status: 200 bytes: 1404 elapsed: 376.435077} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Invalid_Authorization_Token#01
Step #7 - "dataplex": 2025-08-02T07:48:35.040082918Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000010"} httpResponse: {status: 401 bytes: 119 elapsed: 0.146910} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Without_Authorization_Token#01
Step #7 - "dataplex": 2025-08-02T07:48:35.041466769Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000011"} httpResponse: {status: 401 bytes: 119 elapsed: 0.179961} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_Not_Found_or_Permission_Denied
Step #7 - "dataplex": 2025-08-02T07:48:35.135392743Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000012"} httpResponse: {status: 400 bytes: 422 elapsed: 92.943094} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_Basic_View
Step #7 - "dataplex": 2025-08-02T07:48:35.47518648Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000013"} httpResponse: {status: 200 bytes: 1454 elapsed: 338.419526} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Failure_-_Entry_with_Custom_View_without_Aspect_Types
Step #7 - "dataplex": 2025-08-02T07:48:35.689477983Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000014"} httpResponse: {status: 400 bytes: 318 elapsed: 212.961742} 
Step #7 - "dataplex": === RUN   TestDataplexToolEndpoints/Success_-_Entry_Found_with_only_Schema_Aspect
Step #7 - "dataplex": 2025-08-02T07:48:36.060916327Z 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:42324" proto: "HTTP/1.1" requestID: "1bd36764f36f/ThcMKjYORq-000015"} httpResponse: {status: 200 bytes: 1905 elapsed: 369.748393} 
Step #7 - "dataplex": --- PASS: TestDataplexToolEndpoints (131.06s)
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 (2.38s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_with_Authorization_-_Entry_Found (1.67s)
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.10s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found#01 (0.49s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_Authorization (0.38s)
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.09s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_Basic_View (0.34s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Failure_-_Entry_with_Custom_View_without_Aspect_Types (0.21s)
Step #7 - "dataplex":     --- PASS: TestDataplexToolEndpoints/Success_-_Entry_Found_with_only_Schema_Aspect (0.37s)
Step #7 - "dataplex": PASS
Step #7 - "dataplex": coverage: 6.1% 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%22fdfb0faa-f5df-482b-afa8-8741e9f22ee8%22+AND+resource.labels.build_trigger_id%3D%22785da918-06f1-47bb-860c-fbabc80b5977%22&project=toolbox-testing-438616