1

patchFudge 1.0.3のデコレータの奇妙な動作に遭遇しました。経由でクラスをインポートする場合、モジュールにパッチを適用しません

from <module> import <class>

しかし、インポート時には正常に動作します

import <module>

対応するコードの適応。

最小化されたセットアップは次のとおりです。

mdle.py :

class Klaas(object):

    def __init__(self):
        # easyest way to signal this class has been instantiated accidently
        raise Exception(">:[")

some.py (テストが機能しない):

from mdle import Klaas()
def instantiate():
    instance = Klaas()

some.py (テスト作業):

import mdle
def instantiate():
    instance = mdle.Klaas()

some_test.py :

import unittest
import fudge

import some

class SomeTest(unittest.TestCase):

    @fudge.patch("mdle.Klaas")
    def test_somethingb(self, Klaas_mock):
        klaas_inst = (Klaas_mock.expects_call()
                            .returns_fake())


        # Receiving the exception
        some.instantiate()

別の方法でパッチを適用する必要がありますか? これは Fudge の制限ですか、それともバグですか?

4

1 に答える 1