fischer-agentkit/tests/unit/bitable
Chiguyong 6d5a34ada2
Test / backend-test (pull_request) Has been cancelled Details
Test / frontend-unit (pull_request) Has been cancelled Details
Test / api-e2e (pull_request) Has been cancelled Details
Test / frontend-e2e (pull_request) Has been cancelled Details
feat(bitable): formula relations v2 — U1-U8 + review fixes
Implements bitable v2: formula engine expansion (10->64 functions),
cross-table formula references, relation CRUD (1:1/1:N/N:N + bidirectional),
lookup/rollup fields, cross-table dependency graph, automation engine
(3 triggers + 5 actions + retry + webhook), and REST API + BitableTool actions.

Implementation units:
- U1: Schema V3 migration (junction table, automations, cross_table_deps)
- U2: Formula functions 10->64 (datetime/text/logical/aggregate/lookup)
- U3: Cross-table formula {rel.target} syntax (parser 3-tuple, engine resolve)
- U4: Relation CRUD + bidirectional + self-reference
- U5: Lookup & Rollup field types with recalc worker routing
- U6: Cross-table dependency graph + recalc trigger
- U7: Automation engine (asyncio queue, 3x retry, execution logs)
- U8: REST API (11 endpoints) + BitableTool (17 actions)

Review fixes applied (ce-code-review mode:agent):
- P1: SSRF guard on outbound webhook (reuse _assert_safe_host from ingestion)
- P1: Bidirectional relation removal now cleans reverse field (symmetric with add)
- P2: Ownership check on target_table_id in relation field creation (IDOR fix)
- P2: Typed AutomationUpdate Pydantic model (prevents table_id injection)
- P3: Tracked automation fire-and-forget tasks (error visibility)
- P3: Public FormulaEngine.get_cross_table_mapping (remove private attr access)

Tests: 267 passed, 153 skipped (PG). Ruff clean.
Deferred: generate_formula/generate_automation LLM actions, frontend components.
2026-07-06 12:57:07 +08:00
..
__init__.py feat(bitable): add bitable companion service with full P0-P2 fixes 2026-06-25 01:09:59 +08:00
conftest.py feat(bitable): add bitable companion service with full P0-P2 fixes 2026-06-25 01:09:59 +08:00
test_attachment.py feat(bitable): 多维表格文件层 + 默认字段 + 表内字段操作 + ce-code-review 修复 (Stage 1) 2026-06-29 04:07:45 +08:00
test_automation.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_bitable_tool.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_cli.py feat(bitable): add bitable companion service with full P0-P2 fixes 2026-06-25 01:09:59 +08:00
test_conditional_formatting.py feat(bitable): U5 R4 grouping (max 3 fields) + conditional formatting (7 operators) 2026-07-03 22:33:18 +08:00
test_db.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_default_fields.py feat(bitable): 多维表格文件层 + 默认字段 + 表内字段操作 + ce-code-review 修复 (Stage 1) 2026-06-29 04:07:45 +08:00
test_file_crud.py refactor: remove all emoji from agentkit 2026-07-02 01:33:28 +08:00
test_formula_engine.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_formula_parser.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_functions_aggregate.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_functions_datetime.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_functions_logical.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_functions_text.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_grouping.py feat(bitable): U5 R4 grouping (max 3 fields) + conditional formatting (7 operators) 2026-07-03 22:33:18 +08:00
test_ingestion_excel.py feat(bitable): add bitable companion service with full P0-P2 fixes 2026-06-25 01:09:59 +08:00
test_models.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_recalc.py feat(bitable): add bitable companion service with full P0-P2 fixes 2026-06-25 01:09:59 +08:00
test_relation_service.py feat(bitable): formula relations v2 — U1-U8 + review fixes 2026-07-06 12:57:07 +08:00
test_routes.py feat(bitable): U6 R15a BitableTool 4 new actions + DELETE /views endpoint 2026-07-03 23:13:46 +08:00
test_service.py feat(bitable): add bitable companion service with full P0-P2 fixes 2026-06-25 01:09:59 +08:00