CLI para desenvolvimento local de casos de teste de acessibilidade da plataforma Wally
Project description
Wally Dev CLI
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 pelofinderdevem retornarTruenovalidator - Exemplos
non-compliant/: Pelo menos um elemento deve retornarFalsenovalidator
โ๏ธ 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfb29afe530882ea95631c8b78fd70d2ab583e0b2a179ee1bd6217bda6e78408
|
|
| MD5 |
b343b22c5d50d64c046bddc3b359e1c2
|
|
| BLAKE2b-256 |
6b9dbacf69e07d05078757180516750ef84cd99e30a3b574be4e8aeaa5496d4f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87c751c979e1236d500d3b581bad313eaa17b8968fbd0fb8a5fc7c518c5519da
|
|
| MD5 |
a7685023624c20ee479ec6f25d2c0703
|
|
| BLAKE2b-256 |
e794cdb40659b319b47d36880c3ddc5bc4c289b343262952a1009ac1d70ca6a8
|