55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
import os
|
|
import sys
|
|
import json
|
|
from tools import gmail_manage_label, gmail_manage_filter, list_gmail_emails, run_bash_command, resolve_account
|
|
|
|
def test_account(account_alias: str):
|
|
print(f"\n--- INICIANDO TESTES PARA CONTA: {account_alias} ---")
|
|
|
|
# 1. Teste de Listagem de E-mails
|
|
print(f"[TEST] Listando e-mails...")
|
|
emails = list_gmail_emails(account_alias)
|
|
if "Sucesso" in emails or "📧" in emails:
|
|
print(f"✅ SUCESSO na listagem (Amostra): {emails[:50]}...")
|
|
else:
|
|
print(f"❌ FALHA na listagem: {emails}")
|
|
|
|
# 2. Teste de Criação de Marcador (Label)
|
|
test_label = "ANTIGRAVITY_PROACTIVE_TEST"
|
|
print(f"[TEST] Criando marcador '{test_label}'...")
|
|
res_label = gmail_manage_label(f"{account_alias} {test_label}")
|
|
if "Sucesso" in res_label or "já existe" in res_label or "Criação" in res_label:
|
|
print(f"✅ SUCESSO no marcador: {res_label}")
|
|
else:
|
|
print(f"❌ FALHA no marcador: {res_label}")
|
|
|
|
# 3. Teste de Criação de Filtro
|
|
print(f"[TEST] Criando filtro de teste...")
|
|
res_filter = gmail_manage_filter(f"{account_alias} test@example.com {test_label}")
|
|
if "Sucesso" in res_filter or "Sucesso" in str(res_filter) or "{" in str(res_filter):
|
|
print(f"✅ SUCESSO no filtro: {res_filter}")
|
|
else:
|
|
print(f"❌ FALHA no filtro: {res_filter}")
|
|
|
|
# 4. Limpeza
|
|
print(f"[TEST] Limpando...")
|
|
account = resolve_account(account_alias)
|
|
# Busca ID para deletar
|
|
list_res = run_bash_command(f"{account} gmail users labels list")
|
|
try:
|
|
data = json.loads(list_res)
|
|
for l in data.get("labels", []):
|
|
if l["name"] == test_label:
|
|
run_bash_command(f"{account} gmail users labels delete --params '{{\"userId\": \"me\", \"id\": \"{l['id']}\"}}'")
|
|
print(f"✅ Limpeza concluída.")
|
|
break
|
|
except: pass
|
|
|
|
if __name__ == "__main__":
|
|
accounts = ["adm", "mr", "4r"]
|
|
for acc in accounts:
|
|
try:
|
|
test_account(acc)
|
|
except Exception as e:
|
|
print(f"❌ Erro crítico ao testar {acc}: {e}")
|