diff options
Diffstat (limited to 'qa/stub/fund-lab-python')
| -rwxr-xr-x | qa/stub/fund-lab-python | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/qa/stub/fund-lab-python b/qa/stub/fund-lab-python new file mode 100755 index 0000000..9cdfa6a --- /dev/null +++ b/qa/stub/fund-lab-python @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +# QA stub interpreter: emulates the akshare_collector.py JSON contract +# (source=stub-synthetic, _synthetic=true on every payload). +# Invoked by MarketDataService as: fund-lab-python <script> --operation search --query X | --operation nav --code X +set -euo pipefail + +OP="" +QUERY="" +CODE="" +args=("$@") +for ((i=1; i<${#args[@]}; i++)); do + case "${args[$i]}" in + --operation) OP="${args[$((i+1))]:-}"; i=$((i+1)) ;; + --query) QUERY="${args[$((i+1))]:-}"; i=$((i+1)) ;; + --code) CODE="${args[$((i+1))]:-}"; i=$((i+1)) ;; + esac +done + +TS="$(date -u +%Y-%m-%dT%H:%M:%S+00:00)" + +case "$OP" in + search) + printf '{"schema_version":"fund-lab.akshare.v1","operation":"search","source":"stub-synthetic","source_revision":"stub-1","_synthetic":true,"collected_at":"%s","instruments":[{"code":"000001","name":"桩测试基金一号","fund_type":"混合型"},{"code":"110011","name":"桩测试基金二号","fund_type":null}]}\n' "$TS" + ;; + nav) + printf '{"schema_version":"fund-lab.akshare.v1","operation":"nav","source":"stub-synthetic","source_revision":"stub-1","_synthetic":true,"collected_at":"%s","instrument":{"code":"%s"},"observations":[{"nav_date":"2026-09-15","published_at":null,"nav":"1.1000","accumulated_nav":null,"daily_return":null},{"nav_date":"2026-09-16","published_at":null,"nav":"1.1205","accumulated_nav":null,"daily_return":"1.86"},{"nav_date":"2026-09-17","published_at":null,"nav":"1.1180","accumulated_nav":null,"daily_return":"-0.22"},{"nav_date":"2026-09-18","published_at":null,"nav":"1.1500","accumulated_nav":null,"daily_return":"2.86"},{"nav_date":"2026-09-21","published_at":null,"nav":"1.1902","accumulated_nav":null,"daily_return":"3.49"}]}\n' "$TS" "$CODE" + ;; + *) + echo "unknown operation: $OP" >&2 + exit 2 + ;; +esac |
