openTARS / app /tests /test_contexto.py
ProjectOpenTARS4's picture
Mirror of openTARS 5.2 Ranger (revision 2026110101)
2695555 verified
Raw History Blame Contribute Delete
2.47 kB
"""5.2 (F4): sugestão pelo programa em uso. Só o título e o programa decidem; desligada por padrão; "parar de sugerir
neste programa" fica guardado; o cartão não pega o foco do programa onde a pessoa escreve."""
import os
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent))
from _util import RAIZ # noqa: E402,F401
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
import tars_contexto as ctx # noqa: E402
casos = [
("Escrever: (sem assunto) - Thunderbird", "Mail thunderbird", "email"),
("Nova mensagem - Gmail - Google Chrome", "Google-chrome google-chrome", "email"),
("Re: orçamento - Message (HTML)", "rctrl_renwnd32 OUTLOOK", "email"),
("Caixa de entrada - Gmail - Firefox", "Navigator firefox", None), # lendo, não escrevendo
("relatorio.odt - LibreOffice Writer", "libreoffice-writer libreoffice", None),
("Untitled - Notepad", "Notepad notepad", None),
]
for titulo, classe, esperado in casos:
assert ctx.sugestao(titulo, classe) == esperado, (titulo, classe, ctx.sugestao(titulo, classe))
assert ctx.programa("Mail thunderbird") == "thunderbird" and ctx.programa("") == ""
print("OK: e-mail sendo escrito sugere; caixa de entrada, editor e outros programas não")
assert not ctx.ligado(), "desligado por padrão"
ctx.ligar(True)
assert ctx.ligado()
ctx.silenciar("thunderbird")
ctx.silenciar("thunderbird")
assert ctx.silenciado("thunderbird") and not ctx.silenciado("outlook")
ctx.ligar(False)
print("OK: desligado por padrão; parar de sugerir num programa fica guardado")
from PySide6.QtCore import Qt # noqa: E402
from PySide6.QtWidgets import QApplication, QPushButton # noqa: E402
from tars_qt.sugestao import CartaoSugestao # noqa: E402
app = QApplication.instance() or QApplication([])
cartao = CartaoSugestao()
sinais = []
cartao.revisar.connect(lambda: sinais.append("revisar"))
cartao.silenciar.connect(lambda: sinais.append("silenciar"))
cartao.mostrar("email")
assert cartao.isVisible() and cartao.windowFlags() & Qt.WindowDoesNotAcceptFocus
botoes = {b.text(): b for b in cartao.findChildren(QPushButton)}
botoes[ctx.tars_i18n.t("ctx.revisar")].click()
botoes[ctx.tars_i18n.t("ctx.parar")].click()
botoes[ctx.tars_i18n.t("ctx.agora_nao")].click()
assert sinais == ["revisar", "silenciar"] and not cartao.isVisible(), sinais
print("OK: o cartão não pega o foco; Revisar e Parar avisam a janela; Agora não fecha")
print("test_contexto: TUDO OK.")