私の属性の1つは、新しい値が無効な場合に例外を発生させる検証関数をセッターが呼び出すプロパティです。
pos.offset = 0
# @offset.setter calls validate(offset=0)
# PositionError: Offset may not be 0.
これが失敗することを確認するためのテストを追加しようとしています。ただし、assertRaisesを割り当てで機能させる方法がわかりません。
assertRaisesの通常の構文には、属性/プロパティではなく、メソッドが必要です。
self.assertRaises(PositionError, pos.offset, 0)
# TypeError: 'int' object is not callable
私が試した他の形式は無効なPythonです:
self.assertRaises(PositionError, pos.offset = 0)
# SyntaxError: Keyword can't be an expression
self.assertRaises(PositionError, lambda: pos.offset = 0)
# SyntaxError: lambda cannot contain assignment
プロパティへの割り当ての失敗をテストするにはどうすればよいですか?
注:Python 2.6、私はunittestが2.7でいくつかの新機能を持っていることを知っています