test_views.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. '''
  2. this file is part of "El Botadero"
  3. copyright 2018 Rodrigo Garcia <rgarcia@laotra.red>
  4. AGPL liberated.
  5. '''
  6. import pytest
  7. import os
  8. from botadero import create_app
  9. from botadero import shared
  10. from flask import current_app
  11. @pytest.fixture
  12. def app():
  13. app = create_app()
  14. return app
  15. def test_index(client):
  16. response = client.get("/")
  17. assert response.status_code == 200
  18. def test_downloadNotExistsFile(client):
  19. response = client.get('/almacen/NonExistent/j8j13j4128934804jvn1FJ.nnah')
  20. assert response.status_code == 404
  21. def test_uploadFile(client):
  22. from botadero.utils import borrarArchivo, existeArchivo
  23. # armando peticion de subida de archivo de prueba
  24. url = '/Misc/upload_file_a'
  25. nombreArchivo = 'amL7c891712721799999cn1u923412341234.cv' # nombre extraño
  26. headers = {
  27. 'Content-Type': 'multipart/form-data; boundary=---------------------------67471868316984729031353498406',
  28. 'Accept:': '*/*'
  29. }
  30. body = '-----------------------------67471868316984729031353498406\r\nContent-Disposition: form-data; name=\"file\"; filename=\"{nombreArchivo}\"\r\nContent-Type: text/x-csrc\r\n\r\n/* {nombreArchivo}\n * - Testing\n * Copyright (c) 2020 testing.-----------------------------67471868316984729031353498406\r\nContent-Disposition: form-data; name=\"__ajax\"\r\n\r\ntrue\r\n-----------------------------67471868316984729031353498406--\r\n","mode":"application/json'.format(nombreArchivo=nombreArchivo)
  31. # peticion
  32. response = client.post(url,
  33. headers=headers,
  34. data=body)
  35. print('--------------------')
  36. print(response.json)
  37. print('--------------------')
  38. assert response.status_code == 200
  39. assert len(response.json['exitosos']) == 1
  40. assert len(response.json['erroneos']) == 0
  41. # borrando el archivo creado para las pruebas
  42. nombreYRuta = os.path.join('./', shared.globalParams.uploadDirectory, nombreArchivo)
  43. assert borrarArchivo(nombreYRuta) is True
  44. assert existeArchivo(nombreYRuta) is None
  45. # def test_downloadExists(client):
  46. # response = client.get('/almacen/Misc/.gitkeep')
  47. # print('==================================')
  48. # print(response.__dict__)
  49. # print('==================================')
  50. # assert response.status_code == 200