dunossauro / todo_list_flask_brython

um todo-list/kanban implementado com python fullstack
http://todo-brython.herokuapp.com
GNU General Public License v3.0
42 stars 13 forks source link

Criar BasePage para Page Objects #33

Closed dunossauro closed 3 years ago

dunossauro commented 4 years ago

Durante o desenvolvimento de #16 foi notado que as páginas compartilham o mesmo método de erros wait_error_message em praticamente todos os PO com a espera do mesmo elemento.

Criar um base page para resolver esse problema de duplicação de código.

Update

O arquivo com os page objects está localizado em features/page_objects/pages.py

A classes CreateTodo, Login e CreateUser implementam o mesmo método para que seja aguardado o load total dos elementos na tela

    def wait_error_message(self):
        WebDriverWait(self.w, 20).until(
            lambda driver: 'terminal-alert-error' in driver.page_source
        )

Definição de pronto

  1. Você deve criar uma classe chamada WaitablePageObject, que herde de PageObject
  2. Deve fazer com que as classes CreateTodo, Login e CreateUser herdem de WaitablePageObject.
  3. Deve implementar o método wait_error_message na classe WaitablePageObject.

Para testar se tudo está implementado da maneira correta você deve iniciar a aplicação flask em um terminal

FLASK_ENV=testing flask run

E em outro terminal deve rodar os testes e2e com behave

behave

Todos os testes devem continuar funcionando, como agora.