I am new at unittest and I want test Function that upload an .ond file but I still don't know how can I use request.file correctly to upload file and send in test : here is my code and test code
def upload_ond_file():
if 'ondFile' not in request.files:
return 'No file'
directory = 'src/BDDs/BDD_Onduleurs'
if not os.path.isdir(path + directory):
os.mkdir(path + directory)
file = request.files['ondFile']
file.save(os.path.join(path + directory, file.filename))
The test was like :
import unittest
from urllib import response
from flask_unittest import ClientTestCase
from requests import request
import src.Controller.InverterController as InverterController
from unittest import mock
import io
class SomefileTestCase(unittest.TestCase):
def test_method_called_from_route(self):
m = mock.MagicMock()
request.method = "POST"
testfile
=open('C:/optisolar/optisolarbe/src/Test/uploads/test_controller_inverter/20170131_SC 2500-EV_MS_V6.ond',"r")
data= testfile.read()
data = {'files[]': testfile}
with mock.patch("src.Controller.InverterController.request", m):
result = InverterController.upload_ond_file()
print(result)
if __name__ == '__main__':
unittest.main()
but when execute code it mentione that there is no file :
request.url = <MagicMock name='mock.url' id='1807586099888'>
request.path = <MagicMock name='mock.path' id='1807586136320'>
request.data = <MagicMock name='mock.data' id='1807586164448'>
request.method = <MagicMock name='mock.method' id='1807586192640'>
request.files = <MagicMock name='mock.files' id='1807586224928'>
request.filesname = <MagicMock name='mock.files.name' id='1807586253120'>
request.filespath = <MagicMock name='mock.files.path' id='1807586289360'>
request.values = <MagicMock name='mock.values' id='1807586317600'>
request.args = <MagicMock name='mock.args' id='1807586345984'>
request.form = <MagicMock name='mock.form' id='1807586374176'>
request.getjson = <MagicMock name='mock.get_json()' id='1807586422544'>
No file
C:\Python39\lib\unittest\case.py:550: ResourceWarning: unclosed file <_io.TextIOWrapper name='C:/optisolar/optisolarbe/src/Test/uploads/test_controller_inverter/20170131_SC 2500-EV_MS_V6.ond' mode='r' encoding='cp1252'>
method()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
.
----------------------------------------------------------------------
Ran 1 test in 0.025s
OK
my question is how can I upload file (request.file) correctly and send it in test ! thank you in advance