Skip to main content

CLI para desenvolvimento local de casos de teste de acessibilidade da plataforma Wally

Project description

Wally Dev CLI

PyPI version Python versions Pipeline

Wally Dev รฉ uma ferramenta de linha de comando (CLI) para desenvolvimento local de casos de teste de acessibilidade da plataforma Wally.

๐Ÿš€ Instalaรงรฃo

Opรงรฃo 1: pipx (Recomendado)

# Instalar pipx (se necessรกrio)
sudo apt install pipx
pipx ensurepath

# Instalar wally-dev
pipx install wally-dev

Opรงรฃo 2: pip com virtual environment

# Criar e ativar virtual environment
python3 -m venv ~/.venvs/wally-dev
source ~/.venvs/wally-dev/bin/activate

# Instalar
pip install wally-dev

Opรงรฃo 3: pip direto (sistemas sem proteรงรฃo PEP 668)

pip install wally-dev

Requisitos

  • Python 3.9 ou superior
  • Conta ativa na plataforma Wally

๐Ÿ“‹ Comandos Disponรญveis

Comando Descriรงรฃo
wally-dev login Autenticar na plataforma Wally
wally-dev logout Remover credenciais e desbloquear normas
wally-dev status Mostrar status do workspace local
wally-dev norms list Listar normas disponรญveis
wally-dev rules list Listar regras de uma norma
wally-dev checkout Baixar casos de teste para desenvolvimento
wally-dev run Executar casos de teste localmente
wally-dev push Enviar alteraรงรตes para o servidor

๐Ÿ” Autenticaรงรฃo

# Login interativo
wally-dev login

# Com parรขmetros
wally-dev login --username user@example.com --org-id <organization-id>

๐Ÿ“ฆ Workflow de Desenvolvimento

1. Listar normas disponรญveis

wally-dev norms list

Saรญda:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“‹ Normas (3) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“ โ”‚
โ”‚ โ”ƒ ID                       โ”ƒ Nome              โ”ƒ โ”‚
โ”‚ โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ โ”‚
โ”‚ โ”‚ 6954434ffdd23615c0e5d85d โ”‚ NBR 17225         โ”‚ โ”‚
โ”‚ โ”‚ 695c46a91dd6a5bae0e4863b โ”‚ Community         โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

2. Fazer checkout de uma norma

wally-dev checkout --norm-id <norm-id>

Isso irรก:

  • Bloquear a norma no servidor (impede ediรงรตes simultรขneas)
  • Baixar todos os casos de teste e exemplos para ./workspace/

3. Estrutura do Workspace

./workspace/
  <norm-id>/
    testCases/
      <testcase-id>/
        testcase.json     # Metadados do caso de teste
        code/
          finder.py       # Funรงรฃo que encontra elementos
          validator.py    # Funรงรฃo que valida elementos
        examples/
          compliant/
            example.html  # HTML que deve passar
          non-compliant/
            example.html  # HTML que deve falhar

4. Desenvolver o caso de teste

finder.py

from bs4 import BeautifulSoup

def find(html_content: str):
    """
    Encontra elementos HTML para validaรงรฃo.
    
    Args:
        html_content: String com o HTML a ser analisado
        
    Yields:
        Elementos encontrados para validaรงรฃo
    """
    soup = BeautifulSoup(html_content, "html.parser")
    for img in soup.find_all("img"):
        yield img

validator.py

def validate(element) -> bool:
    """
    Valida se um elemento estรก em conformidade.
    
    Args:
        element: Elemento HTML encontrado pelo finder
        
    Returns:
        True se o elemento estรก em conformidade, False caso contrรกrio
    """
    alt = element.get("alt", "")
    return bool(alt and alt.strip())

5. Executar testes localmente

# Executar todos os exemplos de um caso de teste
wally-dev run --testcase <testcase-id>

# Executar um exemplo especรญfico
wally-dev run --testcase <testcase-id> --example compliant/example.html

# Modo debug (mostra elementos encontrados e validaรงรตes)
wally-dev run --testcase <testcase-id> --debug

Saรญda com --debug:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ” Debug Output โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Execuรงรฃo bem sucedida                                     โ”‚
โ”‚                                                           โ”‚
โ”‚ Elementos encontrados: 2                                  โ”‚
โ”‚ Tempo finder: 0.35ms                                      โ”‚
โ”‚ Tempo total: 0.40ms                                       โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ“‹ Elementos e Validaรงรตes:
โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ # โ”ƒ Linha โ”ƒ Tag โ”ƒ validate() โ”ƒ Snippet                     โ”ƒ
โ”กโ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ 0 โ”‚    10 โ”‚ img โ”‚   โœ“ True   โ”‚ <img alt="" src="img.jpg"/> โ”‚
โ”‚ 1 โ”‚    12 โ”‚ img โ”‚   โœ“ True   โ”‚ <img aria-hidden="true"/>   โ”‚
โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

6. Enviar alteraรงรตes

wally-dev push --norm-id <norm-id>

๐Ÿงช Lรณgica de Validaรงรฃo

Os casos de teste seguem a convenรงรฃo:

  • Exemplos compliant/: Todos os elementos encontrados pelo finder devem retornar True no validator
  • Exemplos non-compliant/: Pelo menos um elemento deve retornar False no validator

โš™๏ธ Configuraรงรฃo

A CLI armazena configuraรงรตes em ~/.config/wally-dev/.wally-dev.json:

{
  "access_token": "...",
  "refresh_token": "...",
  "user_email": "user@example.com",
  "organization_id": "...",
  "backend_url": "https://api.wally.equallyze.com/backend/services/v0.0.1"
}

Variรกveis de Ambiente

Variรกvel Descriรงรฃo Default
WALLY_DEV_BACKEND_URL URL da API backend https://api.wally.equallyze.com/...
WALLY_DEV_CONFIG_DIR Diretรณrio de configuraรงรฃo ~/.config/wally-dev

๐Ÿ› ๏ธ Desenvolvimento

Instalaรงรฃo para desenvolvimento

git clone https://gitlab.com/AcessibilidadeParaTodos/wally/wally-dev.git
cd wally-dev

# Criar virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Instalar em modo editรกvel com dependรชncias de dev
pip install -e ".[dev]"

Executar testes

pytest
pytest --cov=wally_dev --cov-report=html

Formataรงรฃo e linting

black wally_dev tests
isort wally_dev tests
ruff check wally_dev tests
mypy wally_dev

๐Ÿ“„ Licenรงa

Este software รฉ propriedade da Equallyze Tecnologia LTDA. Todos os direitos reservados. Consulte o arquivo LICENSE para mais detalhes.

๐Ÿ”— Links

๐Ÿค Suporte

Para suporte, abra uma issue no GitLab ou entre em contato atravรฉs de contato@equallyze.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wally_dev-0.0.1.tar.gz (66.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wally_dev-0.0.1-py3-none-any.whl (62.5 kB view details)

Uploaded Python 3

File details

Details for the file wally_dev-0.0.1.tar.gz.

File metadata

  • Download URL: wally_dev-0.0.1.tar.gz
  • Upload date:
  • Size: 66.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for wally_dev-0.0.1.tar.gz
Algorithm Hash digest
SHA256 cfb29afe530882ea95631c8b78fd70d2ab583e0b2a179ee1bd6217bda6e78408
MD5 b343b22c5d50d64c046bddc3b359e1c2
BLAKE2b-256 6b9dbacf69e07d05078757180516750ef84cd99e30a3b574be4e8aeaa5496d4f

See more details on using hashes here.

File details

Details for the file wally_dev-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: wally_dev-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 62.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for wally_dev-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 87c751c979e1236d500d3b581bad313eaa17b8968fbd0fb8a5fc7c518c5519da
MD5 a7685023624c20ee479ec6f25d2c0703
BLAKE2b-256 e794cdb40659b319b47d36880c3ddc5bc4c289b343262952a1009ac1d70ca6a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page