0
私は共有テストセットのためにmixinを作ろうとしています。これらのジェネリックテストを実行したいときはいつでも、ミックスインから継承することができます。ここでPy.test mixinクラスが `self`にアクセスできない
は私のミックスインの一部です:
class TestWhen(CommonRuleWhenTestsMixin):
def setUp(self):
self.customer = mommy.make(Customer)
self.rule = mommy.make(
UsageRule,
customer=self.customer,
max_recharges_per_month=2
)
self.sim = mommy.make(
Sim,
msisdn='0821234567',
customer=self.customer
)
assert self.rule.when(self.sim)
def test_returns_false_if_airtime_max_recharges_exceeded(self):
self.rule.recharge_type = AIRTIME
mommy.make(
SimRechargeHistory,
sim=self.sim,
product_type=AIRTIME,
_quantity=3
)
assert not self.rule.when(self.sim)
私はこのメッセージを得続ける:
_________ CommonRuleWhenTestsMixin.test_returns_false_if_rule_inactive _________
simcontrol/rules/tests/test_models.py:14: in test_returns_false_if_rule_inactive
self.rule.active = False
E AttributeError: 'CommonRuleWhenTestsMixin' object has no attribute 'rule'
どのようにミックスインすることができます。ここ
class CommonRuleWhenTestsMixin(TestCase):
def test_returns_false_if_rule_inactive(self):
self.rule.active = False
assert not self.rule.when(self.sim)
は、私はミックスインを使用する場合であります子クラスによってself
に設定された変数にアクセスしますか?
ここでTestCaseはunittestのものですか? 'setUp'が実行されていますか? –
はい、はい、私は確認する設定でFalseをアサートした – Lee