Executando Testes¶
É possível executar os testes contra qualquer equipamento SAT, em qualquer plataforma ou arquitetura, desde que você possua um kit de desenvolvimento, contendo o equipamento SAT e as bibliotecas do fabricante.
Para executar os testes em um ambiente Linux é preciso definir algumas variáveis de ambiente para configurar o acesso à biblioteca SAT fornecida pelo fabricante do equipamento, o código de ativação e o Estado do domicílio fiscal em que o equipamento SAT está registrado.
$ export SATCFE_TEST_LIB=/opt/fabricante/libsat.so
$ export SATCFE_TEST_LIB_CONVENCAO=1
$ export SATCFE_TEST_CODIGO_ATIVACAO=12345678
$ export SATCFE_TEST_UF=SP
Antes de executar os testes propriamente, é conveniente revisar a parametrização
no script runtests.sh
que, dependendo do seu equipamento SAT, os valores
para configuração dos dados do emitente e outros dados podem variar. Isto irá
executar os testes invocando as funções ConsultarSAT
e
ConsultarStatusOperacional
(revise o script para adicionar ou remover
funções a serem invocadas):
$ ./runtests.sh tanca
Parametrização¶
As opções de parametrização dos testes são:
--codigo-ativacao
- Código de ativação configurado no equipamento SAT.
--numero-caixa
- Número do caixa de origem.
--assinatura-ac
- Conteúdo da assinatura da AC.
--cnpj-ac
- CNPJ da empresa desenvolvedora da AC (apenas dígitos).
--emitente-cnpj
- CNPJ do estabelecimento emitente (apenas dígitos).
--emitente-ie
- Inscrição estadual do emitente (apenas dígitos).
--emitente-im
- Inscrição municipal do emitente (apenas dígitos).
--emitente-uf
- Sigla da unidade federativa do estabelecimento emitente.
--emitente-issqn-regime
- Regime especial de tributação do ISSQN do emitente, em casos detestes de emissão de venda e/ou cancelamento.
--emitente-issqn-rateio
- Indicador de rateio do desconto sobre o subtotal para produtostributados no ISSQN do emitente, em casos de testes de emissão devenda e/ou cancelamento.
--lib-caminho
- Caminho para a biblioteca SAT.
--lib-convencao
- Convenção de chamada para a biblioteca SAT.
--acessa-sat
- Permite que sejam executados os testes que acessem a biblioteca SAT,eventualmente acessando o equipamento SAT real
--invoca-[funcao]
- Permite que sejam executados os testes que acessem a biblioteca SAT,eventualmente acessando o equipamento SAT real, para acesso à funçãoespecificada (
funcao
). Por exemplo,--invoca-consultarsat
.
Executando Testes Manualmente¶
Você poderá executar os testes unitários contra uma biblioteca de simulação que acompanha o projeto, chamada mockuplib. Isso facilita a execução dos testes unitários sem correr riscos de executar comandos sensíveis (como troca de código de ativação) em um equipamento real, mesmo que seja um equipamento específico para desenvolvimento.
Você irá precisar das ferramentas GNU Make e GNU GCC para compilar a biblioteca de simulação e então usar Pipenv e tox para executar os testes unitários:
$ make mockuplib
$ pipenv install --dev --clear
$ pipenv run tox
Dê uma olhada no arquivo tox.ini
e procure pela propriedade envlist
,
que relaciona as versões de Python que serão usadas nos testes. Se você quiser
executar os testes contra uma versão específica de Python, utilize a
opção -e
. Por exemplo, para executar os testes com a versão 3.6 de Python:
$ pipenv run tox -e py36
Testando Funções Específicas¶
Se não quiser (ou não puder) usar o script runtests.sh
por alguma razão,
você poderá comandar a execução dos testes unitários e dos testes que acessam a
biblioteca SAT e invocam funções específicas (você terá que especificar uma por
uma). Por exemplo, para executar o teste da função ConsultarSAT
faça:
$ pipenv run python setup.py test -a "--acessa-sat --invoca-consultarsat"
Executando Testes usando GNU Make¶
Também é possível executar os testes (e outras tarefas) usando o Makefile
que acompanha o projeto. Por exemplo para executar os testes que não
acessam as funções da biblioteca SAT, faça:
$ pipenv shell
$ make test
Para executar todos os testes, inclusive os testes contra a biblioteca SAT,
use o alvo testall
. Esse alvo irá também compilar a biblioteca SAT mockup
que acompanha o projeto justamente para execução completa dos testes, sem o
risco de acessar um equipamento SAT. De qualquer maneira, mesmo utilizando a
biblioteca mockup ou qualquer outra biblioteca SAT, é preciso definir a
variável de ambiente SATCFE_TEST_LIB
que deve apontar para a biblioteca SAT
que será utilizada nos testes, por exemplo:
$ export SATCFE_TEST_LIB=satcfe/tests/mockup/libmockupsat.so
$ make testall
Variáveis de Ambiente para os Testes¶
Estas são todas as variáveis de ambiente utilizadas no script runtests.sh
e
usadas como valor padrão quando os testes são invocados manualmente (e seus
valores padrão):
Variável | Valor Padrão |
---|---|
SATCFE_TEST_LIB |
libsat.so |
SATCFE_TEST_LIB_CONVENCAO |
1 [1] |
SATCFE_TEST_CODIGO_ATIVACAO |
12345678 [2] |
SATCFE_TEST_EMITENTE_UF |
SP [2] |
SATCFE_TEST_CNPJ_AC |
16716114000172 [2] |
SATCFE_TEST_EMITENTE_CNPJ |
08723218000186 [2] |
SATCFE_TEST_EMITENTE_IE |
149626224113 [2] |
SATCFE_TEST_EMITENTE_IM |
123123 [2] |
SATCFE_TEST_EMITENTE_ISSQN_REGIME |
3 [3] |
SATCFE_TEST_EMITENTE_ISSQN_RATEIO |
N [4] |
[1] | Veja constante CONVENCOES_CHAMADA no projeto SATComum para
conhecer os valores possíveis. |
[2] | (1, 2, 3, 4, 5, 6) Os valores padrão são para equipamentos SAT de desenvolvimento
fabricados pela Tanca. Se o seu equipamento for de um fabricante diferente
substitua pelos valores indicados no manual. O script runtests.sh tem
os valores padrão para alguns outros fabricantes, mas observe que esses
valores podem mudar entre os modelos de um mesmo fabricante. |
[3] | Veja constante C15_CREGTRIBISSQN_EMIT no projeto SATComum para
conhecer os valores possíveis. |
[4] | Veja constante C16_INDRATISSQN_EMIT no projeto SATComum para
conhecer os valores possíveis. |