POC de OCR com Flask e MVC
Go to file
2025-04-23 16:16:17 -04:00
app correção 2025-04-23 16:16:17 -04:00
tests Updates dos testes unitarios com autenticacao 2025-03-22 13:41:16 -04:00
.gitignore Commit Inicial 2025-03-05 21:35:50 -04:00
config.py Commit Inicial 2025-03-05 21:35:50 -04:00
README.md Commit Inicial 2025-03-05 21:35:50 -04:00
requirements.txt Template MVC básico com Jinja 2025-04-03 11:59:32 -04:00
run.py Commit Inicial 2025-03-05 21:35:50 -04:00

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

  1. 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
    
  2. Ative o ambiente virtual:

    • No Windows:

      venv\Scripts\activate
      
    • No macOS/Linux:

      source venv/bin/activate
      
  3. 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
    
  4. Requisitos (requirements.txt):

    Certifique-se de que o arquivo requirements.txt contenha 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:

  1. Inicie o servidor Flask:

    Certifique-se de que o ambiente virtual está ativado e execute o seguinte comando:

    flask run
    
  2. 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.