Django: Как подружить метод, вызываемый в api тесте?

Я постоянно попадаю в метод scan_file(), который должен быть высмеян. Это происходит при вызове self.client.post() в тесте django api. Настройка приложения приведена ниже, я пробовал высмеивать импортированный scan_file patch("myapp.views.scan_file"), а также местоположение источника patch("myapp.utils.scan_file") ни то, ни другое не работает.

# myapp.views.py
from myapp.utils import scan_file

class MyViewset():
    def scan():
        scan_file(file) # <- this should be mocked but its entering the code 

#myapp.utils.py
def scan_file(file) -> bool:
    boolean_result = call_api(file)
    return boolean_result

#test_api.py
class MyAppTest():
    def test_scan_endpoint(self):
        patcher = patch("myapp.views.scan_file")
        MockedScan = patcher.start()
        MockedScan.return_value = True
        # This post hits the scan_file code during the api
        # call but it should be mocked. 
        resp = self.client.post(
            SCAN_ENDPOINT,
            data={
                "file" :self.text_file,
                "field1" : "Progress"
            }
        )

Я также попробовал следующий синтаксис для mocking, и попробовал включить его в тест setup() также:

self.patcher = patch("myapp.views.scan_file")
self.MockedScan = self.patcher.start()
self.MockedScan.return_value = True
Вернуться на верх