def analisar(retorno): """Constrói uma :class:`RespostaTesteFimAFim` a partir do retorno informado. :param unicode retorno: Retorno da função ``TesteFimAFim``. :raises ExcecaoRespostaSAT: Se o atributo ``EEEEE`` não indicar o código de sucesso ``09000`` para ``TesteFimAFim``. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='TesteFimAFim', classe_resposta=RespostaTesteFimAFim, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ('arquivoCFeBase64', unicode), ('timeStamp', as_datetime), ('numDocFiscal', int), ('chaveConsulta', unicode), ), campos_alternativos=[ RespostaSAT.CAMPOS, ] ) if resposta.EEEEE not in ('09000',): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaAtivarSAT` a partir do retorno informado. :param unicode retorno: Retorno da função ``AtivarSAT``. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='AtivarSAT', classe_resposta=RespostaAtivarSAT, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ('CSR', unicode), ), campos_alternativos=[ # se a ativação falhar espera-se o padrão de campos # no retorno... RespostaSAT.CAMPOS, ] ) if resposta.EEEEE not in ( ATIVADO_CORRETAMENTE, CSR_ICPBRASIL_CRIADO_SUCESSO,): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaAtivarSAT` a partir do retorno informado. :param unicode retorno: Retorno da função ``AtivarSAT``. """ resposta = analisar_retorno( forcar_unicode(retorno), funcao='AtivarSAT', classe_resposta=RespostaAtivarSAT, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ('CSR', unicode), ), campos_alternativos=[ # se a ativação falhar espera-se o padrão de campos # no retorno... RespostaSAT.CAMPOS, ]) if resposta.EEEEE not in ( ATIVADO_CORRETAMENTE, CSR_ICPBRASIL_CRIADO_SUCESSO, ): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaTesteFimAFim` a partir do retorno informado. :param unicode retorno: Retorno da função ``TesteFimAFim``. :raises ExcecaoRespostaSAT: Se o atributo ``EEEEE`` não indicar o código de sucesso ``09000`` para ``TesteFimAFim``. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='TesteFimAFim', classe_resposta=RespostaTesteFimAFim, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ('arquivoCFeBase64', unicode), ('timeStamp', as_datetime), ('numDocFiscal', int), ('chaveConsulta', unicode), ), campos_alternativos=[ RespostaSAT.CAMPOS, ]) if resposta.EEEEE not in ('09000', ): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='ConsultarStatusOperacional', classe_resposta=RespostaConsultarStatusOperacional, campos=RespostaSAT.CAMPOS + ( ('NSERIE', unicode), ('TIPO_LAN', unicode), ('LAN_IP', normalizar_ip), ('LAN_MAC', unicode), ('LAN_MASK', normalizar_ip), ('LAN_GW', normalizar_ip), ('LAN_DNS_1', normalizar_ip), ('LAN_DNS_2', normalizar_ip), ('STATUS_LAN', unicode), ('NIVEL_BATERIA', unicode), ('MT_TOTAL', unicode), # int ? ('MT_USADA', unicode), # int ? ('DH_ATUAL', as_datetime), ('VER_SB', unicode), ('VER_LAYOUT', unicode), ('ULTIMO_CF_E_SAT', unicode), ('LISTA_INICIAL', unicode), ('LISTA_FINAL', unicode), ('DH_CFE', as_datetime), ('DH_ULTIMA', as_datetime), ('CERT_EMISSAO', as_date), ('CERT_VENCIMENTO', as_date), ('ESTADO_OPERACAO', int), ) ) if resposta.EEEEE not in ('10000',): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): resposta = analisar_retorno( forcar_unicode(retorno), funcao='ConsultarStatusOperacional', classe_resposta=RespostaConsultarStatusOperacional, campos=RespostaSAT.CAMPOS + ( ('NSERIE', unicode), ('TIPO_LAN', unicode), ('LAN_IP', normalizar_ip), ('LAN_MAC', unicode), ('LAN_MASK', normalizar_ip), ('LAN_GW', normalizar_ip), ('LAN_DNS_1', normalizar_ip), ('LAN_DNS_2', normalizar_ip), ('STATUS_LAN', unicode), ('NIVEL_BATERIA', unicode), ('MT_TOTAL', unicode), # int ? ('MT_USADA', unicode), # int ? ('DH_ATUAL', as_datetime), ('VER_SB', unicode), ('VER_LAYOUT', unicode), ('ULTIMO_CF_E_SAT', unicode), ('LISTA_INICIAL', unicode), ('LISTA_FINAL', unicode), ('DH_CFE', as_datetime), ('DH_ULTIMA', as_datetime), ('CERT_EMISSAO', as_date), ('CERT_VENCIMENTO', as_date), ('ESTADO_OPERACAO', int), )) if resposta.EEEEE not in ('10000', ): raise ExcecaoRespostaSAT(resposta) return resposta
def consultar_sat(retorno): """Constrói uma :class:`RespostaSAT` para o retorno (unicode) da função :meth:`~satcfe.base.FuncoesSAT.consultar_sat`. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='ConsultarSAT') if resposta.EEEEE not in ('08000',): raise ExcecaoRespostaSAT(resposta) return resposta
def associar_assinatura(retorno): """Constrói uma :class:`RespostaSAT` para o retorno (unicode) da função :meth:`~satcfe.base.FuncoesSAT.associar_assinatura`. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='AssociarAssinatura') if resposta.EEEEE not in ('13000',): raise ExcecaoRespostaSAT(resposta) return resposta
def trocar_codigo_de_ativacao(retorno): """Constrói uma :class:`RespostaSAT` para o retorno (unicode) da função :meth:`~satcfe.base.FuncoesSAT.trocar_codigo_de_ativacao`. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='TrocarCodigoDeAtivacao') if resposta.EEEEE not in ('18000',): raise ExcecaoRespostaSAT(resposta) return resposta
def atualizar_software_sat(retorno): """Constrói uma :class:`RespostaSAT` para o retorno (unicode) da função :meth:`~satcfe.base.FuncoesSAT.atualizar_software_sat`. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='AtualizarSoftwareSAT') if resposta.EEEEE not in ('14000',): raise ExcecaoRespostaSAT(resposta) return resposta
def comunicar_certificado_icpbrasil(retorno): """Constrói uma :class:`RespostaSAT` para o retorno (unicode) da função :meth:`~satcfe.base.FuncoesSAT.comunicar_certificado_icpbrasil`. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='ComunicarCertificadoICPBRASIL') if resposta.EEEEE not in ('05000',): raise ExcecaoRespostaSAT(resposta) return resposta
def configurar_interface_de_rede(retorno): """Constrói uma :class:`RespostaSAT` para o retorno (unicode) da função :meth:`~satcfe.base.FuncoesSAT.configurar_interface_de_rede`. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='ConfigurarInterfaceDeRede') if resposta.EEEEE not in ('12000',): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='ExtrairLogs', classe_resposta=RespostaExtrairLogs, campos=RespostaSAT.CAMPOS + ( ('arquivoLog', unicode), ) ) if resposta.EEEEE not in ('15000',): raise ExcecaoRespostaSAT(resposta) return resposta
def _pos_analise(retorno): resposta = analisar_retorno( forcar_unicode(retorno), funcao='ConsultarNumeroSessao', classe_resposta=RespostaConsultarNumeroSessao, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ), ) if resposta.EEEEE not in ('11000', ): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaCancelarUltimaVenda` a partir do retorno informado. :param unicode retorno: Retorno da função ``CancelarUltimaVenda``. """ resposta = analisar_retorno( forcar_unicode(retorno), funcao='EnviarDadosVenda', classe_resposta=RespostaCancelarUltimaVenda, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('CCCC', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ('arquivoCFeBase64', unicode), ('timeStamp', as_datetime), ('chaveConsulta', unicode), ('valorTotalCFe', Decimal), ('CPFCNPJValue', unicode), ('assinaturaQRCODE', unicode), ('id_fila', unicode), ), campos_alternativos=[ # se a venda falhar apenas os primeiros seis campos # especificados na ER deverão ser retornados... ( ('numeroSessao', int), ('EEEEE', unicode), ('CCCC', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ), # por via das dúvidas, considera o padrão de campos, # caso não haja nenhuma coincidência... RespostaSAT.CAMPOS, ]) if resposta.EEEEE not in ('07000', ): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaExtrairLogs` a partir do retorno informado. :param unicode retorno: Retorno da função ``ExtrairLogs``. """ resposta = analisar_retorno( forcar_unicode(retorno), funcao='ExtrairLogs', classe_resposta=RespostaExtrairLogs, campos=RespostaSAT.CAMPOS + (('arquivoLog', unicode), ), campos_alternativos=[ # se a extração dos logs falhar espera-se o padrão de # campos no retorno... RespostaSAT.CAMPOS, ]) if resposta.EEEEE not in ('15000', ): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaCancelarUltimaVenda` a partir do retorno informado. :param unicode retorno: Retorno da função ``CancelarUltimaVenda``. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='EnviarDadosVenda', classe_resposta=RespostaCancelarUltimaVenda, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('CCCC', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ('arquivoCFeBase64', unicode), ('timeStamp', as_datetime), ('chaveConsulta', unicode), ('valorTotalCFe', Decimal), ('CPFCNPJValue', unicode), ('assinaturaQRCODE', unicode), ), campos_alternativos=[ # se a venda falhar apenas os primeiros seis campos # especificados na ER deverão ser retornados... ( ('numeroSessao', int), ('EEEEE', unicode), ('CCCC', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ), # por via das dúvidas, considera o padrão de campos, # caso não haja nenhuma coincidência... RespostaSAT.CAMPOS, ] ) if resposta.EEEEE not in ('07000',): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaConsultarStatusOperacional` a partir do retorno informado. :param unicode retorno: Retorno da função ``ConsultarStatusOperacional``. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='ConsultarStatusOperacional', classe_resposta=RespostaConsultarStatusOperacional, campos=RespostaSAT.CAMPOS + ( ('NSERIE', as_clean_unicode), ('TIPO_LAN', as_clean_unicode), ('LAN_IP', normalizar_ip), ('LAN_MAC', unicode), ('LAN_MASK', normalizar_ip), ('LAN_GW', normalizar_ip), ('LAN_DNS_1', normalizar_ip), ('LAN_DNS_2', normalizar_ip), ('STATUS_LAN', as_clean_unicode), ('NIVEL_BATERIA', as_clean_unicode), ('MT_TOTAL', as_clean_unicode), ('MT_USADA', as_clean_unicode), ('DH_ATUAL', as_datetime), ('VER_SB', as_clean_unicode), ('VER_LAYOUT', as_clean_unicode), ('ULTIMO_CF_E_SAT', as_clean_unicode), ('LISTA_INICIAL', as_clean_unicode), ('LISTA_FINAL', as_clean_unicode), ('DH_CFE', as_datetime_or_none), ('DH_ULTIMA', as_datetime), ('CERT_EMISSAO', as_date), ('CERT_VENCIMENTO', as_date), ('ESTADO_OPERACAO', int), ), campos_alternativos=[ # se falhar resultarão apenas os 5 campos padrão RespostaSAT.CAMPOS, ] ) if resposta.EEEEE not in ('10000',): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaConsultarStatusOperacional` a partir do retorno informado. :param unicode retorno: Retorno da função ``ConsultarStatusOperacional``. """ resposta = analisar_retorno( forcar_unicode(retorno), funcao='ConsultarStatusOperacional', classe_resposta=RespostaConsultarStatusOperacional, campos=RespostaSAT.CAMPOS + ( ('NSERIE', as_clean_unicode), ('TIPO_LAN', as_clean_unicode), ('LAN_IP', normalizar_ip), ('LAN_MAC', unicode), ('LAN_MASK', normalizar_ip), ('LAN_GW', normalizar_ip), ('LAN_DNS_1', normalizar_ip), ('LAN_DNS_2', normalizar_ip), ('STATUS_LAN', as_clean_unicode), ('NIVEL_BATERIA', as_clean_unicode), ('MT_TOTAL', as_clean_unicode), ('MT_USADA', as_clean_unicode), ('DH_ATUAL', as_datetime), ('VER_SB', as_clean_unicode), ('VER_LAYOUT', as_clean_unicode), ('ULTIMO_CF_E_SAT', as_clean_unicode), ('LISTA_INICIAL', as_clean_unicode), ('LISTA_FINAL', as_clean_unicode), ('DH_CFE', as_datetime_or_none), ('DH_ULTIMA', as_datetime), ('CERT_EMISSAO', as_date), ('CERT_VENCIMENTO', as_date), ('ESTADO_OPERACAO', int), ), campos_alternativos=[ # se falhar resultarão apenas os 5 campos padrão RespostaSAT.CAMPOS, ]) if resposta.EEEEE not in ('10000', ): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): """Constrói uma :class:`RespostaExtrairLogs` a partir do retorno informado. :param unicode retorno: Retorno da função ``ExtrairLogs``. """ resposta = analisar_retorno(forcar_unicode(retorno), funcao='ExtrairLogs', classe_resposta=RespostaExtrairLogs, campos=RespostaSAT.CAMPOS + ( ('arquivoLog', unicode), ), campos_alternativos=[ # se a extração dos logs falhar espera-se o padrão de # campos no retorno... RespostaSAT.CAMPOS, ] ) if resposta.EEEEE not in ('15000',): raise ExcecaoRespostaSAT(resposta) return resposta
def analisar(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='TesteFimAFim', classe_resposta=RespostaTesteFimAFim, campos=( ('numeroSessao', int), ('EEEEE', unicode), ('mensagem', unicode), ('cod', unicode), ('mensagemSEFAZ', unicode), ('arquivoCFeBase64', unicode), ('timeStamp', as_datetime), ('numDocFiscal', int), ('chaveConsulta', unicode), ), campos_alternativos=[ RespostaSAT.CAMPOS, ] ) if resposta.EEEEE not in ('09000',): raise ExcecaoRespostaSAT(resposta) return resposta
def texto(self, texto): self.impressora.text(unidecode(util.forcar_unicode(texto))) return self
def desbloquear_sat(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='DesbloquearSAT') if resposta.EEEEE not in ('17000',): raise ExcecaoRespostaSAT(resposta) return resposta
def comunicar_certificado_icpbrasil(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='ComunicarCertificadoICPBRASIL') if resposta.EEEEE not in ('05000',): raise ExcecaoRespostaSAT(resposta) return resposta
def consultar_sat(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='ConsultarSAT') if resposta.EEEEE not in ('08000',): raise ExcecaoRespostaSAT(resposta) return resposta
def configurar_interface_de_rede(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='ConfigurarInterfaceDeRede') if resposta.EEEEE not in ('12000',): raise ExcecaoRespostaSAT(resposta) return resposta
def test_forcar_unicode(): texto_unicode = u'Praça de Operações' assert forcar_unicode(texto_unicode) == texto_unicode assert forcar_unicode('Simples ASCII') == u'Simples ASCII' pytest.raises(TypeError, forcar_unicode, 123)
def associar_assinatura(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='AssociarAssinatura') if resposta.EEEEE not in ('13000',): raise ExcecaoRespostaSAT(resposta) return resposta
def atualizar_software_sat(retorno): resposta = analisar_retorno(forcar_unicode(retorno), funcao='AtualizarSoftwareSAT') if resposta.EEEEE not in ('14000',): raise ExcecaoRespostaSAT(resposta) return resposta