test_controller.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. def test_descargarArchivoProtegido():
  31. from botadero.utils import hashPassword, registrarArchivo, comprobarPassword, borrarArchivo, existeArchivo, descargarArchivo
  32. from botadero.controller import descargarArchivo
  33. nombreYRuta = crearArchivoPrueba()
  34. hashedPassword = hashPassword('123456')
  35. registrado = registrarArchivo(nombreYRuta, hashedPassword=hashedPassword)
  36. assert not isinstance(descargarArchivo('', nombreYRuta, password='123456'), dict)
  37. assert borrarArchivo(nombreYRuta) is True
  38. assert existeArchivo(nombreYRuta) is None
  39. def test_descargarArchivoProtegidoError():
  40. from botadero.utils import hashPassword, registrarArchivo, comprobarPassword, borrarArchivo, existeArchivo, descargarArchivo
  41. from botadero.controller import descargarArchivo
  42. nombreYRuta = crearArchivoPrueba()
  43. hashedPassword = hashPassword('123456')
  44. registrado = registrarArchivo(nombreYRuta, hashedPassword=hashedPassword)
  45. assert isinstance(descargarArchivo('', nombreYRuta, password='12vawe'), dict) is True
  46. assert borrarArchivo(nombreYRuta) is True
  47. assert existeArchivo(nombreYRuta) is None
  48. # def test_subirArchivo(db):
  49. # from botadero.controller import subirArchivo
  50. # from botadero.utils import nombreArchivo, borrarArchivo, existeArchivo
  51. # db_fd, db_path = tempfile.mkstemp(suffix='.txt', dir=shared.globalParams.uploadDirectory)
  52. # with open(db_path, 'w') as file:
  53. # i = 5000
  54. # cont = ''
  55. # while i > 10:
  56. # cont += ',' + str(random.randint(1,i))
  57. # i -= 1
  58. # file.write(cont)
  59. # resp = subirArchivo('', file, '123456')
  60. # assert 'tipoError' not in resp
  61. # assert existeArchivo(db_path) is not None
  62. # assert borrarArchivo(db_path) is True
  63. # utils para pruebas
  64. def crearArchivoPrueba(numCadenas=5000, dir=None):
  65. db_fd, db_path = tempfile.mkstemp(suffix='.txt', dir=dir)
  66. with open(db_path, 'w') as file:
  67. i = int(numCadenas)
  68. cont = ''
  69. while i > 10:
  70. cont += ',' + str(random.randint(1,i))
  71. i -= 1
  72. file.write(cont)
  73. return db_path