Использование фиктивного патча python для тестирования класса не работает - PullRequest
0 голосов
/ 27 февраля 2019

У меня трудные времена с юнит-тестом и патчем.Я хотел бы протестировать определенный класс и изменить в нем некоторые атрибуты.

Я думаю, что у меня проблема с путем, но не могу понять, как ее решить.

#lib.inventory.py
class Inventory(object):

    def __init__(self):
        self.db = "12"

    def do_stuff(self):
        return "ok"

#test.py
import unittest
from mock import patch
import time
from  lib.inventory import Inventory

#test_case.py
class MyTest(unittest.TestCase):
    @patch('lib.inventory.Inventory')  
    def test_retrieve_project_id(self,mock_inventory):

        print "####################"
        print Inventory
        print mock_inventory
        print "####################"

КогдаЯ запускаю этот тест и вижу, что оба объекта Inventory и mock_inventory указывают на один и тот же объект MagickMock.Но это не так:

####################
<class 'lib.inventory.Inventory'>
<MagicMock name='Inventory' id='140594977874320'>
####################

Не могли бы вы сказать мне, что я делаю неправильно?Может быть, я неправильно понял концепцию макета и патча?Спасибо

...