Skip to content

Enhance loading state logging and refactor related methods#1908

Merged
HelenaAdrignoli merged 6 commits intorelease/v2.7.0rc1from
hotfix/NewBrowse_wait_loading
Apr 14, 2026
Merged

Enhance loading state logging and refactor related methods#1908
HelenaAdrignoli merged 6 commits intorelease/v2.7.0rc1from
hotfix/NewBrowse_wait_loading

Conversation

@vinioliveira-totvs
Copy link
Copy Markdown
Collaborator

Refatoração: Consolidação e Melhoria do Método po_loading()

Resumo

Este PR refatora o método interno _po_loading() para consolidar o tratamento de estado de carregamento em toda a estrutura POUI, introduzindo melhorias arquiteturais e documentação.

Objetivos

  • Separação de Responsabilidades: Extrair a lógica de espera de carregamento de métodos de detecção para métodos de ação dedicados
  • Consolidação de Código: Substituir loops de espera customizados pelo mecanismo centralizado wait_element() da framework
  • Clareza da API Interna: Marcar método como interno com prefixo _ para evitar uso externo
  • Documentação: Fornecer docstring abrangente com exemplos e documentação de parâmetros

Mudanças Realizadas

1. Refatoração da Assinatura e Implementação do Método

  • Adicionado prefixo _ para indicar método interno
  • Adicionadas type hints: selector: str = '' e tipo de retorno -> None
  • Substituído loop customizado pelo wait_element() consolidado da framework
  • Seletor agora é opcional com padrão sensato (fallback para 'body')
  • Integrada estratégia inteligente de backoff do wait_element()
  • Adicionado logging para observabilidade

2. Locais de Chamada Atualizados (6 locações)

a. return_table() - Linha 4524

- self.po_loading(selector='wa-dialog')
+ self._po_loading()

Justificativa: Removido seletor hardcoded; agora usa escopo padrão (corpo inteiro)

b. _set_browse_program() - Linha 5385

- self.po_loading(self.containers_selectors['GetCurrentContainer'])
+ self._po_loading()

Justificativa: Simplificado para comportamento padrão após busca de container dinâmico

c. _filter_thf_browse() - Linha 5673 (NOVA CHAMADA)

+ self._po_loading()

Justificativa: Adicionada espera de carregamento no início do método para tratar mudanças dinâmicas na UI de filtragem

d. _remove_filters_from_browse() - Linha 5741

- self.po_loading(self.containers_selectors['GetCurrentContainer'])
+ self._po_loading()

Justificativa: Consolidado para comportamento padrão por consistência

e. SetButton() - Linha 5946 (MOVIDO)

+ self._po_loading()

Justificativa: Movida espera de carregamento para ponto de entrada do método; agora aguarda antes da interação com botão

3. Aprimoramento da Documentação

Adicionada docstring abrangente com:

  • Tag [Internal] para clareza
  • Explicação clara do propósito
  • Documentação de parâmetro com valores padrão
  • Especificação de tipo de retorno
  • Dois exemplos de uso (genérico e baseado em seletor)

Exemplos de Uso:

>>> # Aguardar carregamento completo em toda a página
>>> self._po_loading()
>>> # Aguardar carregamento completo em um diálogo específico
>>> self._po_loading('wa-dialog')

Recomendações de Teste

  1. Comportamento Padrão: Testar _po_loading() sem seletor em páginas com po-loading
  2. Espera Delimitada: Testar com parâmetro seletor em diálogos com po-loading
  3. Cenário de Timeout: Verificar se framework lança erro se po-loading não desaparecer dentro do timeout
  4. Integração: Confirmar que SetButton, _filter_thf_browse, return_table funcionam com a nova implementação

@HelenaAdrignoli HelenaAdrignoli merged commit 17eb04f into release/v2.7.0rc1 Apr 14, 2026
1 check passed
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