-
-
Notifications
You must be signed in to change notification settings - Fork 89
Testes
Os testes do pacote em python da basedosdados
foram implementados usando o módulo pytest. Neste documento, apresentamos convenções e padrões utilizados na nossa implementação dos testes:
No âmbito do pytest, as fixtures são valores que o usuário define com o decorador @pytest.fixture
que ficam globalmente disponíveis para os outros testes definidos no módulo. Exemplo:
import pytest
@pytest.fixture
def input_value():
input = 39
return input
def test_divisible_by_3(input_value):
assert input_value % 3 == 0
Ocorre que, pelo nosso coding standard
, evitamos sobrescrever variáveis locais com nomes globais em uso. Para manter o uso das fixtures e compatibilizar os arquivos dos módulos de testes com nosso coding standard
, adotamos a convenção sugerida na documentação do pytest:
If a fixture is used in the same module in which it is defined, the function name of the fixture will be shadowed by the function arg that requests the fixture; one way to resolve this is to name the decorated function fixture_ and then use @pytest.fixture(name='').
Para o exemplo mostrado acima, temos:
@pytest.fixture(name="input_value")
def fixture_input_vallue():