Ich denke, das sollte ein einfacher Schein sein, aber ich habe es noch nicht zum Laufen gebracht.Funktionspatch wird nicht von importiertem Modul übernommen
Ich arbeite der folgenden Verzeichnisstruktur aus:
module
├── utilities.py
├── order.py
├── test
│ ├── test_order.py
Der entsprechende Code ist wie folgt:
- utilities.py -
def get_file_path(order_number, file_extension):
# this is what I want to mock out
- bestellen. py -
from module.utilities import get_file_path
class Order():
# ...
@classmethod
def load_order(order_number, extension):
file_path = get_file_path(order_number, extension)
- test_order.py -
import unittest
from unittest.mock import patch
from module.order import order
@patch('order.get_file_path')
def mock_file(_, extension):
if extension == 'json':
return static_file_path
class TestOrder(unittest.TestCase):
def test_load_order_by_number(self):
my_order = order.load_order(number, extension)
Dies ist das erste Mal, dass ich versucht habe, in Python zu spotten. Von dem, was ich sagen kann, was ich habe, sollte funktionieren, aber immer wenn Order
get_file_path
ruft, verwendet es immer das in utilities.py
.
Ich habe versucht:
test_load_order_by_number
Dekoration- Patchen mit
module.order.get_file_path
Ich habe versucht der Suche auf SO, aber keine der Lösungen, die ich half gefunden, so dass ich dachte, dass ich nur etwas offensichtlich falsch machen, dass jemand darauf hinweisen kann.