Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separar download sat #26

Merged
32 commits merged into from
Mar 5, 2015
Merged

Separar download sat #26

32 commits merged into from
Mar 5, 2015

Conversation

ppaez
Copy link
Contributor

@ppaez ppaez commented Feb 28, 2015

Esta rama derivada de develop es para realizar el issue #25. Empieza con agregados a la documentación que son necesarios, se agregarán más cambios en código esta tarde al final de la sesión de TDD en LinuxCabal.

Una vez que esté completa, esta rama podría mezclarse en un release-0.2.7 o subsequente.

Mauricio Baeza and others added 7 commits February 25, 2015 19:24
Se agrega soporte para obtener el detalle de conceptos en los reportes, por ejemplo:

{emisor_rfc}|{serie}{folio}|{noIdentificacion}|{descripcion}|{unidad}|{cantidad}|{valorUnitario}|{importe}

Si agrega cualquier campo del detalle, se omite la validación de los sellos y del SAT
- Habilitar la extensión autodoc
- Crear la sección Referencia
- Qué código está involucrado
- Los pasos generales
- Por ahora solo los que tienen que ver con
  la descarga de CFDIs
- Es copia sin refactorizar de _download_sat()
- Queda en pyutil.py como las demás herramientas
- Crear descarga.py como script
  para ejecutar desde consola
- Crear pwd.sample como plantilla
  del archivo de credenciales
@ppaez
Copy link
Contributor Author

ppaez commented Mar 1, 2015

Ya se agregaron cambios en esta rama, que crean DescargaSAT y descarga.py. Si quieren probar descarga.py, es un script de consola que usa DescargaSAT.

ppaez added 15 commits March 1, 2015 07:10
- Alineando con la definición propuesta en
  el issue LinuxCabal#25
- Ayuda con -h
- Se ofrecen valores predeterminados
- La carpeta destino tiene que ser una ruta
  absoluta.  Si es relativa, el navegador
  la ignora y utiliza su valor predeterminado
  de descargas :(
- Las validaciones que hace
- El diccionario que construye
- La tupla que regresa
- Los valores predeterminados igual que
  en la aplicación admincfdi
- El uso de uuid cambia type_search a 1
- Se preserva self para referir a
  _download_sat_month() que se va
  a agregar ahora
- Ya podemos refactorizar _download_sat()
  porque podemos probar funcionalmente
  todas las opciones de búsqueda
- Es copia sin refactorizar de _download_sat_month()
- Como método de DescargaSAT
@ppaez
Copy link
Contributor Author

ppaez commented Mar 2, 2015

Se agregaron más cambios: descarga.py ya tiene opciones de línea de comando para todos los tipos de búsquedas, pueden listar las opciones así:

(env34) pp@g6:~/admin-cfdi$ py descarga.py -h
usage: descarga.py [-h] [--archivo-de-credenciales ARCHIVO_DE_CREDENCIALES]
                   [--carpeta-destino CARPETA_DESTINO] [--facturas-emitidas]
                   [--uuid UUID] [--rfc-emisor RFC_EMISOR] [--año AÑO]
                   [--mes MES] [--día DÍA] [--mes-completo]

Descarga CFDIs del SAT a una carpeta local

optional arguments:
  -h, --help            show this help message and exit
  --archivo-de-credenciales ARCHIVO_DE_CREDENCIALES
                        Archivo con credenciales para el SAT. RFC y CIEC en el
                        primer renglón y separadas por un espacio. El
                        predeterminado es pwd
  --carpeta-destino CARPETA_DESTINO
                        Carpeta local para guardar los CFDIs descargados El
                        predeterminado es cfdi
  --facturas-emitidas   Descargar facturas emitidas. Por omisión se descargan
                        facturas recibidas
  --uuid UUID           UUID. Por omisión no se usa en la búsqueda. Esta
                        opción tiene precedencia sobre las demás opciones de
                        búsqueda.
  --rfc-emisor RFC_EMISOR
                        RFC del emisor. Por omisión no se usa en la búsqueda.
  --año AÑO             Año. El valor por omisión es el año en curso
  --mes MES             Mes. El valor por omisión es el mes en curso
  --día DÍA             Día. El valor por omisión es '00', significa no usar
                        el día en la búsqueda
  --mes-completo        Mes completo por día. Por omisión no se usa en la
                        búsqueda.

Si quieren probar descarga.py, hagan pull de esta rama en mi fork. Lo he estado usando para probar funcionalmente los cambios y está muy padre hacer las descagas desde bash ;)

Espero que ya pronto lleguemos al cambio para que admincfdi.py use directamente DescargaSAT

ppaez added 2 commits March 2, 2015 06:25
- Se hará innecesaria mediante refactorización
  en DescargaSAT
@mr-E
Copy link
Contributor

mr-E commented Mar 2, 2015

Buen día

...probar descarga.py, hagan pull de esta rama en mi fork...

Quiero probar la descarga.py... ¿como hacer el pull de la rama?
Todavia no termino de auto-capacitarme en GitHub. :$

@ppaez
Copy link
Contributor Author

ppaez commented Mar 2, 2015

@mr-E: Debería decir hacer checkout, en lugar pull. Si estás dentro del repositorio admin-cfdi en tu PC, agrega una referencia remota a mi fork del proyecto así:

  git remote add ppaez https://github.com/ppaez/admin-cfdi.git

Actualiza las referencias en tu repositorio:

  git fetch ppaez

Ahora sí, haz checkout de la rama separar-dowload-sat:

git checkout separar-download-sat
Branch separar-download-sat set up to track remote branch separar-download-sat from ppaez.
Switched to a new branch 'separar-download-sat'

Estando en esta rama, deberás ver descarga.py en tu repositorio.

Algo que no he resuelto aún, es porqué FireFox ignora el valor de --carpeta-destino si es una ruta relativa... usa una ruta absoluta como ~/cfdi, y crea esa carpeta antes de correr descarga.py.

@ghost
Copy link

ghost commented Mar 2, 2015

Cuando hago
git checkout separar-download-sat
Obtengo

error: Your local changes to the following files would be overwritten by checkout:
    admincfdi.py
Please, commit your changes or stash them before you can switch branches.
Aborting

Creo recordar que hay que pasarle rutas abosultas a Firefox...

@ghost
Copy link

ghost commented Mar 2, 2015

Eran unos cambios que había hecho...

probando descarga.py

@ghost
Copy link

ghost commented Mar 2, 2015

Prueba exitosa, quedo muy padre...

ppaez added 6 commits March 2, 2015 17:13
- Usar get_dates, get_days, sleep
- Remover del mock de aplication
- Se usan el atributo SAT, page_init y page_cfdi
- Remover del mock de aplication
- El atributo status es llamado para
  enviar mensajes
- Por omisión los mensajes se envían
  a stdout
- Remover del mock de aplication
- El atributo progress es llamado para
  proporcionar valor y máximo a un control
  gráfico de tipo barra de progreso
- Por omisión se envían valor y máximo
  a stdout
- Remover pb del mock de aplication
- Remover el mock
@mr-E
Copy link
Contributor

mr-E commented Mar 3, 2015

Intente probar "descarga.py" pero me falta:

from unittest.mock import Mock
from unittest.mock import MagicMock

Usando pip intente instalar "unittest", "unittest2" y "mock", pero no funciona.
Por ejemplo

(virt)...$ pip install unittest

No lo encuentra y menciona en el log que va a ignorar unittest2 :

(cfdadmin)mre@ubuntu:~/virt/cfdadmin/admin-cfdi-separar-download-sat$ pip install unittest
Downloading/unpacking unittest
  Could not find any downloads that satisfy the requirement unittest
Cleaning up...
No distributions at all found for unittest
Storing complete log in /tmp/tmpd6bskp:
....
../virt/cfdadmin/bin/pip run on Tue Mar  3 08:44:05 2015
Downloading/unpacking unittest

  Getting page https://pypi.python.org/simple/unittest/
  URLs to search for versions for unittest:
  * https://pypi.python.org/simple/unittest/
  Analyzing links from page https://pypi.python.org/simple/unittest/
    Skipping link https://pypi.python.org/packages/source/u/unittest/unittest2-0.0.0.tar.gz#md5=2a416384f814604ed854d40f352f1191 (from https://pypi.python.org/simple/unittest/); wrong project name (not unittest)
  Could not find any downloads that satisfy the requirement unittest

Cleaning up...

@ppaez
Copy link
Contributor Author

ppaez commented Mar 3, 2015

unittest es parte de la librería estandar, pero mock fue introducido en Python 3.3, eso es lo que posiblemente te está faltando. Si tienes Python 3.2 por ejemplo, podrías intentar

 pip install mock

y modifca esos dos import para que digan:

 from mock import Mock
 from mock import MagicMock

Pero hay una opción mejor: esta mañana subí cambios que removieron el uso de unittest.mock en descarga.py :) Simplemente actualiza tu repositorio así:

 git pull ppaez separar-download-sat

@mr-E
Copy link
Contributor

mr-E commented Mar 3, 2015

+1 Gracias!

ppaez added 2 commits March 3, 2015 17:57
- Agregar los métodos msg_user() y progress()
  como wrapper a los widgets
- Usar estos métodos en los parámetros opcionales
  status_callback y download_callback
- _download_sat() y _download_sat_month()
  ya están incluidas en pyutil.DescargaSAT
ghost pushed a commit that referenced this pull request Mar 5, 2015
@ghost ghost merged commit 8f2150b into LinuxCabal:master Mar 5, 2015
@ppaez
Copy link
Contributor Author

ppaez commented Mar 5, 2015

La mezcla a master se deshizo, no era lo que se deseaba y no nos dimos cuenta, y se rehizo la mezcla a la rama develop.

@ppaez ppaez deleted the separar-download-sat branch April 4, 2015 17:14
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants