From 0603d7b928cf5599dec8632bdb334333825a0bbf Mon Sep 17 00:00:00 2001 From: Felipe Guedes Date: Sun, 29 Aug 2021 13:40:52 -0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20usage=20of=20checkbox=20answe?= =?UTF-8?q?rs=20validator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PyInquirer/prompts/checkbox.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/PyInquirer/prompts/checkbox.py b/PyInquirer/prompts/checkbox.py index 92f4783..a2462e6 100644 --- a/PyInquirer/prompts/checkbox.py +++ b/PyInquirer/prompts/checkbox.py @@ -9,6 +9,7 @@ from prompt_toolkit.layout.containers import ConditionalContainer, \ ScrollOffsets, HSplit, Window, WindowAlign from prompt_toolkit.layout.dimension import LayoutDimension as D +from prompt_toolkit.validation import ValidationError from prompt_toolkit.layout import Layout @@ -160,7 +161,7 @@ def get_prompt_tokens(): ' (, to move, to select, ' 'to toggle, to invert)')) if not ic.answered_correctly: - tokens.append((Token.Error, ' Error: %s' % ic.error_message)) + tokens.append(('class:Answer', ' Error: %s' % ic.error_message)) return tokens # assemble layout @@ -236,9 +237,13 @@ def _prev(): @kb.add('enter', eager=True) def set_answer(event): - ic.answered = True - # TODO use validator - event.app.exit(result=ic.get_selected_values()) + try: + validator(ic.get_selected_values()) + ic.answered = True + event.app.exit(result=ic.get_selected_values()) + except ValidationError as error: + ic.error_message = error + ic.answered_correctly = False return Application( layout=Layout(layout),