summaryrefslogtreecommitdiff
path: root/qa/stub
diff options
context:
space:
mode:
Diffstat (limited to 'qa/stub')
-rwxr-xr-xqa/stub/fund-lab-python32
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