EXTRACTO DE CÓDIGO DE PRUEBA · 20/oct/2026 Esta función usa clientes simulados y AppTest; no acredita una publicación remota. El fragmento requiere el repositorio original para ejecutarse. def test_review_and_separate_draft_schedule_actions(tmp_path): folder = tmp_path / "output" folder.mkdir() file = folder / "preview.png" Image.new("RGB", (400, 500), "green").save(file) config = {"projects": {"cinefilosos": {"bucket": "cinefilosos-social", "public_base_url": "https://media.example.com", "allowed_roots": [str(folder)]}}} client = Mock() client.channels.return_value = [dict(id=cid, service=service, name="cinefilosospodcast", organizationId=ORGANIZATION, isDisconnected=False, isLocked=False) for cid, service in TARGETS["cinefilosos"].items()] uploader = Mock() pub = BufferPublisher(tmp_path, config=config, client=client, uploader=uploader) pub.execute = Mock(return_value=[]) app = AppTest.from_function(buffer_screen, args=(tmp_path, pub), default_timeout=20).run() assert not app.exception client.channels.assert_not_called() assert button(app, "Revisar envío").disabled button(app, "Actualizar cuentas").click().run() app.multiselect(key="pub-accounts-cinefilosos").set_value(list(TARGETS["cinefilosos"])) app.multiselect(key="pub-files-cinefilosos").set_value([str(file)]) app.text_area(key="pub-text-cinefilosos").set_value("Texto revisado") button(app, "Revisar envío").click().run() assert not app.exception and not app.error assert any(s.value == "Vista previa del envío" for s in app.subheader) assert len(app.get("imgs")) == 1 uploader.assert_not_called() pub.execute.assert_not_called() assert button(app, "Programar en Buffer").disabled button(app, "Guardar borradores en Buffer").click().run() assert pub.execute.call_args.args[1:] == ("draft", "") assert "labels" not in pub.execute.call_args.args[0] app.checkbox[0].check().run() assert not button(app, "Programar en Buffer").disabled button(app, "Programar en Buffer").click().run() assert pub.execute.call_args.args[1] == "schedule" assert pub.execute.call_args.args[2].endswith("-06:00") # Changing the reviewed text requires fresh approval for scheduling. app.text_area(key="pub-text-cinefilosos").set_value("Otra pieza") button(app, "Revisar envío").click().run() assert button(app, "Programar en Buffer").disabled assert not app.exception