def test_questionnaire(self):
q = Questionnaire()
q.add('k', prompter=lambda prompt: 'v')
q.run()
self.assertEqual(q.answers['k'], 'v')
q.add('k2', prompter=lambda prompt: 'v2_first').condition(('k', 'v_'))
q.add('k2', prompter=lambda prompt: 'v2_second').condition(('k', 'v'))
q.ask()
self.assertEqual(q.answers['k2'], 'v2_second')
self.assertEqual(len(q.answers), 2)
q.add('k3', prompter=lambda prompt: randrange(10)).validate(
lambda a: None if a == 0 else 'error'
).transform(lambda a: a-1)
q.ask()
self.assertEqual(q.answers['k3'], -1)
q.reset()
self.assertEqual(dict(q.answers), {})
评论列表
文章目录