Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

Seguindo 12 Factor App

Iniciando gerenciamento de dependências PipEnv

pipenv install

pipenv shell

Linter flake8

Nesta etapa é instalado o flake8 e criado o arquivo de configuração .flake8 na raiz do projeto.

[flake8]
max-line-length = 120
exclude =
    .venv,

Cobertura de testes

  • Instalar pytest-django: pipenv install -d 'pytest-django'
  • Instalar pytest-cov: pipenv install -d 'pytest-cov'
  • Instalar codecov: pipenv install -d codecov
  • Criar o arquivo pytest.ini para o pytest-django:
[pytest]
DJANGO_SETTINGS_MODULE = <nome_do_projeto>.settings
  • Adicionar um módulo de testes no app. Obs.: Para isso o nome deve iniciar com test
  • Configurar o pytest no Pycharm em Python Integrated Tools -> Default test runner;
  • Criar o diretório contrib na raiz do projeto e dentro dele adicionar o arquivo env-sample que irá possuir a SECRET_KEY usada só para teste.

O comando para rodar o teste: pipenv run pytest

O comando para rodar o teste com relatório de cobertura: pipenv run pytest --cov=<nome_do_projeto>

Iniciando Continous Integration

Travis ou Github Actions

Neste ponto pode ser utilizado Travis ou Github Actions.

Ex. com Github Actions:

Basta criar um diretório .github/workflows e dentro dele adicionar um arquivo.yml:

name: Python application

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install pipenv
        cp contrib/env-sample .env
    - name: Run pipenv and tests
      run: |
        pipenv install -d
        # stop the build if there are Python syntax errors or undefined names
        pipenv run flake8
        pipenv run pytest --cov=<nome_do_projeto>
    - name: Run pipenv and tests
      run: |
        pipenv run codecov

Ex. com Travis

Basta criar o arquivo .travis.yml na raiz do projeto e linka-lo no site:

language: python
python:
  - 3.8

services:
  postgresql
addons:
  postgresql: '9.5'

install:
  - pip install -q pipenv codecov
  - pipenv sync --dev
  - cp contrib/env-sample .env

before_script:
  - psql -c "CREATE DATABASE testdb;" -U postgres

script:
  - flake8
  - pytest pypro --cov=pypro
after_success:
  - codecov

Pyup

Basta criar o arquivo .pyup.yml na raiz do projeto e linkar o projeto no site:

requirements:
  - Pipfile
  - Pipfile.lock 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment