"""Teste pentru salvarea maparii direct din chip. Verifica: - Endpoint /trimitere/{id}/salveaza-regula-chip salveaza regula via save_mapping+reresolve_account. - Re-rezolvarea deblocheaza si submission-uri frate cu aceeasi operatie (batch_id IS NULL). - Editarea one-off prin /corecteaza nu forteaza salvarea regulii in operations_mapping. - Detaliu needs_data NU mai contine redundant eliminat # # --------------------------------------------------------------------------- # def test_fara_select_vechi_redundant(client): """Detaliu needs_data NU mai contine RAMANE in formularul /repune pentru starea error. """ acct = _create_account_user("no.select.vechi@test.com") _login(client, "no.select.vechi@test.com") _seed_cod("OE-1", "Schimb ulei") # needs_data: starea editabila (editabil=True); chip cu cod setat sid = _insert(acct, status="needs_data", payload={ "vin": "WVWZZZ1JZXW0NS001", "nr_inmatriculare": "B200AA", "data_prestatie": "2026-06-20", "odometru_final": "", # gol -> needs_data "prestatii": [{"cod_prestatie": "OE-1", "cod_op_service": "Op-A", "denumire": "Schimb ulei"}], }) resp = client.get(f"/_fragments/trimitere/{sid}") assert resp.status_code == 200 html = resp.text # Chipurile trebuie sa fie prezente (hidden input cu name="chips_state", JSON versionat) has_chip_hidden = re.search(r']+type=["\']hidden["\'][^>]+name=["\']chips_state["\']', html) assert has_chip_hidden, ( "Chips: trebuie sa existe input hidden cu name='chips_state' (din _chips_prestatii.html). " f"html[:600]={html[:600]}" ) # Cod-ul OE-1 trebuie sa apara in stare (JSON), nu ca input separat assert "OE-1" in html, f"OE-1 trebuie sa apara in chips_state. html[:600]={html[:600]}" # Vechiul . " "Chips-urile (hidden inputs) il inlocuiesc. " f"Gasit: {select_cod_prestatie.group(0) if select_cod_prestatie else 'N/A'}. " f"html[:800]={html[:800]}" )