refactor: Report referencia TestRun em vez de embutir cenários próprios #18
Loading…
Reference in a new issue
No description provided.
Delete branch "refactor/report-run-scenarios"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Resumo
Último item pendente do mapa Motor vs. EEG (
docs/ARCHITECTURE.md):ReporttinhaReportScenario/ReportScenarioSteppróprios, uma cópia quase idêntica deTestRunScenario/TestRunStep(funções de criação praticamente clonadas —add_scenario_to_reportvsadd_scenario_to_run). Já existia a estrutura certa pra isso (TestRun); faltavaReportreferenciá-la.TestRunganhareport_id(FK 1:1 prareports.id, nullable, unique,ondelete=CASCADE) —Report.runé um TestRun "de suporte" exclusivo daquele report.573520d0fbe5migrareport_scenarios/report_scenario_steps/anexos de step (images.step_id) existentes pratest_run_scenarios/test_run_steps/run_images, com IDs deslocados por offset pra nunca colidir com scenarios/steps de Runs já existentes, e só então dropa as tabelas/coluna antigas.Report.scenariosvirou@propertydelegando praReport.run.scenarios— como os schemas Pydantic não declaram os campos extras que sóTestRunScenario/TestRunSteptêm, o JSON fica idêntico ao de antes. Zero mudança de frontend.GET /api/runspassa a filtrar os runs "de suporte" de Report.Issue(achados) continua embutido emReport— não há equivalente no motor pra reaproveitar (decisão documentada, não pendência).Validação
Dado o risco real de mover BLOBs entre tabelas, fui além do padrão usado nas migrations anteriores:
pytestno backend: 37/37 passandotest_runs/test_run_scenarios/test_run_steps/run_imagesGET /api/runsnão lista os runs de suporte