私のnoobの状態を許してください、しかし私は本当に理解していないと私は誰かが私のために説明することができます願っています。継承されたメソッドを模擬してください
class Base(object):
def mogrify(self, column):
return self.mogrifiers.get(column.lower().strip()) or (lambda x: x)
...
class MyClass(some.package.Base):
def mogrifiers(self):
return {
'column1': (lambda x: datetime.datetime.fromtimestamp(int(x)))
}
...
class MyOtherClass(object):
def convert_columns:
...
new_row[colkey] = self.myclass.mogrify(colkey)(value)
このすべての作品が、私はユニットテストを書いて、MyClass
をモックしようとしています。
私が知る限り、mogrifiersはすべての列の辞書と必要な変換を返します。
私がテストしているコードは、文字列内の特定の列名を持つ(Baseクラスから継承されます)をモーグリファイします。
これは、辞書から列を抽出しようとし、ラムダ関数を返しますか?または辞書に存在しない場合は、単に文字列を返すラムダを返しますか?
私がテストしようとしているコードに(値)ビットが残っているだけです。それが何をするのかは分かりません。
基礎となる変換/変換をテストしたくない場合、私のモックは単なるラムダを返すことができます。
は、だから私はそれをやったが、それは言ってmogrifyの呼び出しで例外がスローされます:E TypeError: 'str' object is not callable
誰もが、私はここに欠けているものをいくつかの手がかりを提供することはできますか?