Agregar test estatus de CFDI
This commit is contained in:
parent
3fa06cb1ef
commit
8cb4bf3e18
|
@ -47,6 +47,7 @@ class PACComercioDigital(object):
|
||||||
'timbra': ws.format('ws', 'timbre/timbrarV5.aspx'),
|
'timbra': ws.format('ws', 'timbre/timbrarV5.aspx'),
|
||||||
'cancel': ws.format('cancela', 'cancela3/cancelarUuid'),
|
'cancel': ws.format('cancela', 'cancela3/cancelarUuid'),
|
||||||
'cancelxml': ws.format('cancela', 'cancela3/cancelarXml'),
|
'cancelxml': ws.format('cancela', 'cancela3/cancelarXml'),
|
||||||
|
'status': ws.format('cancela', 'arws/consultaEstatus'),
|
||||||
'client': api.format('x3/altaEmpresa'),
|
'client': api.format('x3/altaEmpresa'),
|
||||||
'saldo': api.format('x3/saldo'),
|
'saldo': api.format('x3/saldo'),
|
||||||
'timbres': api.format('x3/altaTimbres'),
|
'timbres': api.format('x3/altaTimbres'),
|
||||||
|
@ -63,10 +64,12 @@ class PACComercioDigital(object):
|
||||||
|
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
ws = 'https://pruebas.comercio-digital.mx/{}'
|
ws = 'https://pruebas.comercio-digital.mx/{}'
|
||||||
|
ws6 = 'https://pruebas6.comercio-digital.mx/arws/{}'
|
||||||
URL = {
|
URL = {
|
||||||
'timbra': ws.format('timbre/timbrarV5.aspx'),
|
'timbra': ws.format('timbre/timbrarV5.aspx'),
|
||||||
'cancel': ws.format('cancela3/cancelarUuid'),
|
'cancel': ws.format('cancela3/cancelarUuid'),
|
||||||
'cancelxml': ws.format('cancela3/cancelarXml'),
|
'cancelxml': ws.format('cancela3/cancelarXml'),
|
||||||
|
'status': ws6.format('consultaEstatus'),
|
||||||
'client': api.format('x3/altaEmpresa'),
|
'client': api.format('x3/altaEmpresa'),
|
||||||
'saldo': api.format('x3/saldo'),
|
'saldo': api.format('x3/saldo'),
|
||||||
'timbres': api.format('x3/altaTimbres'),
|
'timbres': api.format('x3/altaTimbres'),
|
||||||
|
@ -241,6 +244,32 @@ class PACComercioDigital(object):
|
||||||
|
|
||||||
return result.text
|
return result.text
|
||||||
|
|
||||||
|
def status(self, data, auth={}):
|
||||||
|
if not auth:
|
||||||
|
auth = AUTH
|
||||||
|
url = self.URL['status']
|
||||||
|
|
||||||
|
data = (
|
||||||
|
f"USER={auth['user']}",
|
||||||
|
f"PWDW={auth['pass']}",
|
||||||
|
f"RFCR={data['rfc_receptor']}",
|
||||||
|
f"RFCE={data['rfc_emisor']}",
|
||||||
|
f"TOTAL={data['total']}",
|
||||||
|
f"UUID={data['uuid']}",
|
||||||
|
)
|
||||||
|
data = '\n'.join(data)
|
||||||
|
print(data)
|
||||||
|
result = self._post(url, data)
|
||||||
|
|
||||||
|
if result is None:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
if result.status_code != 200:
|
||||||
|
self._error(result.status_code)
|
||||||
|
return self.error
|
||||||
|
|
||||||
|
return result.text
|
||||||
|
|
||||||
def _get_data_client(self, auth, values):
|
def _get_data_client(self, auth, values):
|
||||||
data = [f"usr_ws={auth['user']}", f"pwd_ws={auth['pass']}"]
|
data = [f"usr_ws={auth['user']}", f"pwd_ws={auth['pass']}"]
|
||||||
fields = (
|
fields = (
|
||||||
|
|
|
@ -200,6 +200,40 @@ class TestStamp(unittest.TestCase):
|
||||||
self.assertEqual(cfdi_uuid, uid)
|
self.assertEqual(cfdi_uuid, uid)
|
||||||
self.assertEqual(status, expected)
|
self.assertEqual(status, expected)
|
||||||
|
|
||||||
|
def test_cfdi_status(self):
|
||||||
|
expected = ''
|
||||||
|
cfdi = TestCfdi()
|
||||||
|
result = self.pac.stamp(cfdi.xml)
|
||||||
|
cfdi_uuid = self.pac.cfdi_uuid
|
||||||
|
|
||||||
|
self.assertFalse(bool(self.pac.error))
|
||||||
|
self.assertTrue(bool(uuid.UUID(cfdi_uuid)))
|
||||||
|
|
||||||
|
NS_CFDI = {
|
||||||
|
'cfdi': 'http://www.sat.gob.mx/cfd/3',
|
||||||
|
'tdf': 'http://www.sat.gob.mx/TimbreFiscalDigital',
|
||||||
|
}
|
||||||
|
tree = ET.fromstring(result.encode())
|
||||||
|
rfc_emisor = tree.xpath(
|
||||||
|
'string(//cfdi:Comprobante/cfdi:Emisor/@Rfc)',
|
||||||
|
namespaces=NS_CFDI)
|
||||||
|
rfc_receptor = tree.xpath(
|
||||||
|
'string(//cfdi:Comprobante/cfdi:Receptor/@Rfc)',
|
||||||
|
namespaces=NS_CFDI)
|
||||||
|
total = tree.xpath(
|
||||||
|
'string(//cfdi:Comprobante/@Total)',
|
||||||
|
namespaces=NS_CFDI)
|
||||||
|
|
||||||
|
time.sleep(3)
|
||||||
|
data = {
|
||||||
|
'rfc_receptor': rfc_receptor,
|
||||||
|
'rfc_emisor': rfc_emisor,
|
||||||
|
'total': total,
|
||||||
|
'uuid': cfdi_uuid,
|
||||||
|
}
|
||||||
|
result = self.pac.status(data)
|
||||||
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Reference in New Issue