"""Teste TDD US-009 (PRD 5.15): salvare mapare din chip + cleanup (B) select redundant. RED -> implementare -> GREEN. AC-uri verificate: - 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. - Cleanup (B): detaliu needs_data NU mai contine redundant eliminat # # --------------------------------------------------------------------------- # def test_fara_select_vechi_redundant(client): """Cleanup (B): detaliu needs_data NU mai contine RAMANE in formularul /repune pentru starea error (neschimbat — nu e subiectul cleanup-ului B). RED: inainte de cleanup, atat selectul cat si chips emit cod_prestatie → dublu. """ 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="cod_prestatie") has_chip_hidden = ( re.search(r']+type=["\']hidden["\'][^>]+name=["\']cod_prestatie["\']', html) or re.search(r']+name=["\']cod_prestatie["\'][^>]+type=["\']hidden["\']', html) ) assert has_chip_hidden, ( "Chips: trebuie sa existe input hidden cu name='cod_prestatie' (din _chips_prestatii.html). " f"html[:600]={html[:600]}" ) # Vechiul . " "Chips-urile (hidden inputs) il inlocuiesc (cleanup B, US-009). " f"Gasit: {select_cod_prestatie.group(0) if select_cod_prestatie else 'N/A'}. " f"html[:800]={html[:800]}" )