test_controller.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. '''
  2. this file is part of "El Botadero"
  3. copyright 2019 Rodrigo Garcia <strysg@riseup.net>
  4. AGPL liberated.
  5. '''
  6. import os
  7. import tempfile
  8. import random
  9. import pytest
  10. from botadero import create_app
  11. from botadero import shared
  12. from flask import current_app
  13. # NOTA: para ver los mensajes en print usar: pytest -s
  14. def test_sincronizarArchivos(db):
  15. from botadero.utils import addRelativeFileName
  16. from botadero.database.models import Archivo
  17. from botadero.controller import sincronizarArchivos
  18. nuevos, borrados, actualizados = sincronizarArchivos()
  19. f1 = crearArchivoPrueba(dir=shared.globalParams.uploadDirectory)
  20. f2 = crearArchivoPrueba(dir=shared.globalParams.uploadDirectory)
  21. print('temporales creados:')
  22. print(f1)
  23. print(f2)
  24. nuevos1, borrados1, actualizados1 = sincronizarArchivos()
  25. assert len(nuevos1) > 0
  26. os.remove(f1)
  27. nuevos2, borrados2, actualizados2 = sincronizarArchivos()
  28. assert len(borrados2) > 0
  29. os.remove(f2)
  30. # utils para pruebas
  31. def crearArchivoPrueba(numCadenas=5000, dir=None):
  32. db_fd, db_path = tempfile.mkstemp(suffix='.txt', dir=dir)
  33. with open(db_path, 'w') as file:
  34. i = int(numCadenas)
  35. cont = ''
  36. while i > 10:
  37. cont += ',' + str(random.randint(1,i))
  38. i -= 1
  39. file.write(cont)
  40. return db_path