4.8 KiB
Claro! Aqui está um exemplo de README para o seu projeto, cobrindo a criação do virtual environment (venv), instalação de dependências, execução do Flasgger para documentação e execução de testes:
Projeto de Testes com SQLAlchemy, Factory Boy e Flask
Este é um projeto simples de teste utilizando SQLAlchemy, Factory Boy para a criação de dados e Flasgger para a documentação de APIs. O projeto inclui exemplos de como configurar o ambiente de desenvolvimento, realizar testes e gerar documentação interativa para suas APIs.
Índice
Pré-requisitos
Antes de começar, você precisa ter o Python instalado na sua máquina. Você pode verificar se o Python está instalado executando o seguinte comando:
python --version
Se você não tiver o Python instalado, pode obter a versão mais recente aqui.
Além disso, é necessário ter o pip (gerenciador de pacotes do Python) instalado. Você pode verificar isso com:
pip --version
Instalação
-
Crie um ambiente virtual (virtualenv):
Para isolar as dependências do seu projeto, é recomendável criar um ambiente virtual. Navegue até o diretório do projeto e execute:
python -m venv venv -
Ative o ambiente virtual:
-
No Windows:
venv\Scripts\activate -
No macOS/Linux:
source venv/bin/activate
-
-
Instale as dependências:
Após ativar o ambiente virtual, instale as dependências necessárias listadas no
requirements.txt:pip install -r requirements.txt -
Requisitos (requirements.txt):
Certifique-se de que o arquivo
requirements.txtcontenha as bibliotecas necessárias:Flask Flask-SQLAlchemy Flask-Flasgger factory_boy pytest
Uso
Rodar Flasgger (Documentação da API)
Este projeto utiliza o Flasgger para gerar uma interface de documentação interativa para as APIs Flask. Para visualizar a documentação da sua API:
-
Inicie o servidor Flask:
Certifique-se de que o ambiente virtual está ativado e execute o seguinte comando:
flask run -
Abra a documentação no navegador:
Depois que o servidor estiver em execução, você pode acessar a documentação da API através do seguinte endereço:
http://127.0.0.1:5000/apidocs/A interface do Flasgger permitirá que você veja as rotas, envie requisições e veja as respostas de forma interativa.
Rodar Testes Unitários
Este projeto usa o pytest para rodar testes unitários. Os testes estão localizados na pasta tests/.
Para rodar os testes, execute:
pytest -v
Isso irá rodar todos os testes dentro da pasta tests/. Você verá a saída com os resultados dos testes diretamente no terminal.
Exemplo de execução de teste unitário:
tests/test_invoices.py::test_get_invoices
Rodar Testes Rápidos (Sem Flask)
Se você quiser rodar testes rápidos sem o Flask (usando apenas SQLAlchemy e Factory Boy), pode executar o seguinte código diretamente, sem iniciar o servidor Flask. Apenas instancie o banco em memória e rode a fábrica.
# Executar a criação de usuários sem o Flask (em memória)
from app.database import db
from tests.factories import UserFactory
# Configurar banco de dados em memória
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
# Criar um usuário usando a factory
user = UserFactory.create(name="João", email="joao@example.com")
print(user.name, user.email)
Este código irá criar um banco de dados SQLite temporário em memória e usar o Factory Boy para gerar dados de teste rapidamente.
Estrutura de Diretórios
A estrutura do projeto segue a seguinte organização:
/project-root
├── /app
│ ├── /__init__.py
│ ├── /models.py
│ ├── /routes.py
│ └── /database.py
├── /tests
│ ├── /__init__.py
│ ├── /test_invoices.py
│ └── /factories.py
├── requirements.txt
├── run.py
├── /venv
└── README.md
- /app: Contém a lógica da aplicação Flask (modelos, rotas, configuração do banco de dados).
- /tests: Contém os testes unitários, como
test_invoices.py. - requirements.txt: Arquivo que contém todas as dependências do projeto.
- run.py: Script para iniciar o servidor Flask.
- venv/: Diretório do ambiente virtual.