def test_choose_with_long_choices(self): stdin = helper.event_factory( key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.SPACE, key.DOWN, key.DOWN, key.ENTER, ) message = "Number message" variable = "Number variable" choices = list(range(15)) question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) assert result == [8]
def test_ctrl_c_breaks_execution(self): stdin_array = [key.CTRL_C] stdin = helper.event_factory(*stdin_array) message = 'Foo message' variable = 'Bar variable' choices = ['foo', 'bar', 'bazz'] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) with self.assertRaises(KeyboardInterrupt): sut.render(question)
def test_can_move(self): stdin = helper.event_factory(key.DOWN, key.DOWN, key.UP, key.SPACE, key.ENTER) message = "Foo message" variable = "Bar variable" choices = ["foo", "bar", "bazz"] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEqual(["bar"], result)
def test_can_move(self): stdin = helper.event_factory(key.DOWN, key.DOWN, key.UP, key.SPACE, key.ENTER) message = 'Foo message' variable = 'Bar variable' choices = ['foo', 'bar', 'bazz'] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEqual(['bar'], result)
def test_left_cursor_do_not_select(self): stdin_array = [key.SPACE, key.LEFT, key.LEFT, key.ENTER] stdin = helper.event_factory(*stdin_array) message = 'Foo message' variable = 'Bar variable' choices = ['foo', 'bar', 'bazz'] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEqual([], result)
def test_choose_the_second(self): stdin = helper.event_factory(key.DOWN, key.SPACE, key.ENTER) message = "Foo message" variable = "Bar variable" choices = ["foo", "bar", "bazz"] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertInStdout(message) assert result == ["bar"]
def test_left_cursor_do_not_select(self): stdin_array = [key.SPACE, key.LEFT, key.LEFT, key.ENTER] stdin = helper.event_factory(*stdin_array) message = "Foo message" variable = "Bar variable" choices = ["foo", "bar", "bazz"] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) assert result == []
def test_right_cursor_do_not_unselect(self): stdin_array = [key.RIGHT, key.RIGHT, key.ENTER] stdin = helper.event_factory(*stdin_array) message = "Foo message" variable = "Bar variable" choices = ["foo", "bar", "bazz"] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.assertEqual(["foo"], result)
def test_all_choices_are_shown(self): stdin = helper.event_factory(key.ENTER) message = 'Foo message' variable = 'Bar variable' choices = ['foo', 'bar', 'bazz'] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) sut.render(question) self.assertInStdout(message) for choice in choices: self.assertInStdout(choice)
def test_move_up_carousel(self): stdin = helper.event_factory(key.UP, key.SPACE, key.ENTER) message = "Foo message" variable = "Bar variable" choices = ["foo", "bar", "bazz"] question = questions.Checkbox(variable, message, choices=choices, carousel=True) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) assert result == ["bazz"]
def test_cannot_move_beyond_lower_limit(self): stdin = helper.event_factory(key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.DOWN, key.SPACE, key.ENTER) message = "Foo message" variable = "Bar variable" choices = ["foo", "bar", "bazz"] question = questions.Checkbox(variable, message, choices=choices) sut = ConsoleRender(event_generator=stdin) result = sut.render(question) self.printStdout() assert result == ["bazz"]
def checkbox(message, render=None, **kwargs): render = render or ConsoleRender() question = questions.Checkbox(name="", message=message, **kwargs) return render.render(question)