Metadata-Version: 2.4
Name: nsj-rest-test-util
Version: 0.1.14
Summary: Utilitários para testes de aplicações rests.
Home-page: https://github.com/Nasajon/nsj-rest-test-util
Author: Nasajon Sistemas
Author-email: contact.dev@nasajon.com.br
Project-URL: Source, https://github.com/Nasajon/nsj-rest-test-util
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.4
Description-Content-Type: text/markdown
Requires-Dist: asn1crypto>=1.5.1
Requires-Dist: attrs>=22.1.0
Requires-Dist: Authlib>=1.0.0
Requires-Dist: certifi>=2022.9.24
Requires-Dist: cffi>=1.15.1
Requires-Dist: charset-normalizer>=2.0.12
Requires-Dist: click>=8.1.3
Requires-Dist: cryptography>=38.0.1
Requires-Dist: Flask>=2.0.3
Requires-Dist: greenlet>=1.1.3
Requires-Dist: idna>=3.4
Requires-Dist: iniconfig>=1.1.1
Requires-Dist: itsdangerous>=2.1.2
Requires-Dist: Jinja2>=3.1.2
Requires-Dist: jsonpickle>=2.2.0
Requires-Dist: MarkupSafe>=2.1.1
Requires-Dist: nsj-gcf-utils>=1.0.9
Requires-Dist: packaging>=21.3
Requires-Dist: pendulum>=2.1.2
Requires-Dist: pg8000>=1.24.1
Requires-Dist: pluggy>=1.0.0
Requires-Dist: ptvsd>=4.3.2
Requires-Dist: py>=1.11.0
Requires-Dist: pycparser>=2.21
Requires-Dist: pydantic>=1.9.0
Requires-Dist: pyparsing>=3.0.9
Requires-Dist: pytest>=7.1.3
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pytzdata>=2020.1
Requires-Dist: requests>=2.26.0
Requires-Dist: scramp>=1.4.1
Requires-Dist: six>=1.16.0
Requires-Dist: SQLAlchemy>=1.4.32
Requires-Dist: sqlparams>=3.0.0
Requires-Dist: tomli>=2.0.1
Requires-Dist: typing_extensions>=4.3.0
Requires-Dist: urllib3>=1.26.12
Requires-Dist: Werkzeug>=2.2.2

# nsj-rest-test-util
Utilitário para geração e execução de testes em APIs Rest

Esta biblioteca não se propõe a testar método e sim requisições.
A criação dos testes é automatizada, só é necessário preencher qual a requisição e qual a resposta esperada.

A biblioteca possui dois passos: a Criação e a Execução

A Criação de caso de teste é o processo que realiza um dump das informações no banco ele gera um csv com as informações do banco no momento da criação do teste e também realiza a requisção para a api que será testada para gerar assim o retorno que será comparado na hora de executar o teste.

A Execução do teste é realizada pelo pytest na pasta api/casos_de_teste
neste ponto ele carregará no banco os dados do csv criado na criação do teste e fará uma requisição para a api no tenant que foi configurado nas variaveis de ambiente.

# Variaveis de ambiente

DATABASE_HOST - Host do banco 
DATABASE_PASS - Senha do banco
DATABASE_PORT - Porta do banco
DATABASE_NAME - Nome da base de dados
DATABASE_USER - Usuario do banco

SERVER_PORT - porta da aplicação que será testada
TESTS_TENANT - tenant que será usado para inserção de dados de teste
TESTS_URL_BASE - url base da aplicação que será 


# Criação de caso de teste




    
 em src/util/tcase_tools altere o chamamento da função TCaseTools.criar_caso_teste_padrao no método main
     TCaseTools.criar_caso_teste_padrao(
        1,                          # Tenant que será feita a requisição ara montar o teste
        "/recursos",                # Rota que será feira a requisição
        "1234",                     # Codigo mope para a rota
        HTTPMethod.GET,             # Metodo HTTP que será feita a requisição
        204,                        # Código esperado para o retorno
        "exemplo1",                 # Nome que será usado para se referir ao teste
        JsonUtil().decode(""""""),  # Corpo da requisição em caso de POST, em caso de GET e DELETE são os parametros na url
        True,                       # Esse parametro é para saber se deseja executar o teste e gerar a saída, por 
                                    padrão passamos true
        True                        # esse paramentro é para se o teste já existir ao executar novamente será sobrescrito
                                    seus arquivos
    )
