def test_ctrl_c_breaks_execution(self): stdin = helper.event_factory(key.CTRL_C) message = "Foo message" variable = "Bar variable" question = questions.Confirm(variable, message) sut = ConsoleRender(event_generator=stdin) with self.assertRaises(KeyboardInterrupt): sut.render(question)
def test_invalid_answer(self): stdin = helper.event_factory("Z", "Z", "Z", "Y") message = "Foo message" variable = "Bar variable" question = questions.Confirm(variable, message=message, default=True) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertNotInStdout("Z") self.assertTrue(result)
def test_invalid_answer(self): stdin = helper.event_factory('Z', 'Z', 'Z', 'Y') message = 'Foo message' variable = 'Bar variable' question = questions.Confirm(variable, message=message, default=True) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertNotInStdout('Z') self.assertTrue(result)
def test_answring_N(self): stdin = helper.event_factory("N") message = "Foo message" variable = "Bar variable" expected = False question = questions.Confirm(variable, message=message, default=True) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEqual(expected, result) self.assertInStdout(message) self.assertInStdout("(Y/n)")
def test_no_as_default(self): stdin = helper.event_factory(key.ENTER) message = "Foo message" variable = "Bar variable" expected = False question = questions.Confirm(variable, message=message) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEqual(expected, result) self.assertInStdout(message) self.assertInStdout("(y/N)")
def test_answring_n(self): stdin = helper.event_factory('n') message = 'Foo message' variable = 'Bar variable' expected = False question = questions.Confirm(variable, message=message, default=True) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEquals(expected, result) self.assertInStdout(message) self.assertInStdout('(Y/n)')
def test_yes_as_default(self): stdin = helper.event_factory(key.ENTER) message = 'Foo message' variable = 'Bar variable' expected = True question = questions.Confirm(variable, message=message, default=True) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEqual(expected, result) self.assertInStdout(message) self.assertInStdout('(Y/n)')
def test_default_default_value_is_false_instead_of_none(self): name = "foo" q = questions.Confirm(name) self.assertEqual(False, q.default)
def confirm(message, render=None, **kwargs): render = render or ConsoleRender() question = questions.Confirm(name="", message=message, **kwargs) return render.render(question)