Skip to content

Add Utils class for entrypoint retrieval and refactor internal classes#1912

Open
vinioliveira-totvs wants to merge 3 commits intorelease/v2.7.0rc1from
feature/improve_error_message
Open

Add Utils class for entrypoint retrieval and refactor internal classes#1912
vinioliveira-totvs wants to merge 3 commits intorelease/v2.7.0rc1from
feature/improve_error_message

Conversation

@vinioliveira-totvs
Copy link
Copy Markdown
Collaborator

@vinioliveira-totvs vinioliveira-totvs commented Apr 15, 2026

Descrição

Objetivo

Consolidar a lógica duplicada de detecção de função de entrada (entrypoint) que existia em WebappInternal e PouiInternal em uma classe utilitária centralizada.

O que é o arquivo utils.py?

O novo arquivo tir/technologies/core/utils.py cria uma classe Utils que centraliza métodos utilitários compartilhados entre as tecnologias TIR.

Ideia principal: Evitar duplicação de código ao extrair funcionalidades comuns em um local único, reutilizável e bem testado.

Alterações

1. Nova classe Utils (tir/technologies/core/utils.py)

  • Método get_main_entrypoint_from_stack(): Identifica qual função de teste/entrada iniciou uma cadeia de chamadas
  • Útil para melhorar logs e rastreamento de erros
  • Suporta:
    • Múltiplos módulos alvo configuráveis
    • Funções ignoradas personalizáveis
    • Fallback seguro
    • Path matching multiplataforma (Windows/Unix)

2. Refatoração de WebappInternal

  • ❌ Removido: método duplicado get_function_from_stack()
  • ✅ Adicionado: inicialização de self.utils = Utils() em Base
  • ✅ Refatorado: método log_error() para usar self.utils.get_main_entrypoint_from_stack()
  • ✅ Melhorado: formatação de logs agora inclui nome da função de entrada: [test_name] - message

3. Refatoração de PouiInternal

  • ❌ Removido: método duplicado get_function_from_stack()
  • ✅ Herda funcionalidade via classe Base

4. Testes Unitários (tests/test_utils.py)

  • 18 testes cobrindo:
    • Comportamento com parâmetros padrão e customizados
    • Fallback seguro
    • Case-insensitive matching
    • Path separators (Windows/Unix)
    • Mock de stack frames
    • Múltiplos módulos alvo

Benefícios

Benefício Detalhes
DRY (Don't Repeat Yourself) Lógica duplicada consolidada em um único lugar
Manutenibilidade Correções e melhorias afetam todas as classes automaticamente
Testabilidade Método isolado e bem testado (18 testes)
Extensibilidade Fácil adicionar novos métodos utilitários no futuro
Melhor rastreamento Logs agora mostram qual função/teste iniciou o erro

Antes: Métodos duplicados em 2 classes
Depois: Lógica centralizada, reutilizável e testada

HelenaAdrignoli and others added 3 commits April 15, 2026 09:42
… stack; refactor WebappInternal and PouiInternal classes to utilize new utility methods.
…cumentation and add comprehensive unit tests for various scenarios
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants