def test_get_int(self): input_str = u""" foo 3.14 101 5 """ with redirect_stdin(StringIO(input_str)): result = get_int() assert (result == 101) with redirect_stdin(StringIO(input_str)): result = get_int(prompt='Enter an integer') assert (result == 101) with redirect_stdin(StringIO(input_str)): result = get_int(validators=[self.zero_to_ten_validator], error_callback=my_print_error, convertor_error_fmt=self.convertor_fmt, validator_error_fmt=self.validator_fmt) assert (result == 5) with redirect_stdin(StringIO(input_str)): result = get_int(validators=[self.zero_to_ten_validator], prompt='Enter a integer between 0 and 10', error_callback=my_print_error, convertor_error_fmt=self.convertor_fmt, validator_error_fmt=self.validator_fmt) assert (result == 5)
def get_input_guess(): number = random.randint(1, 10) print('I am thinking of a number between 1 and 10.') guess = get_int(prompt='Guess what number I am thinking of', minimum=1, maximum=10) if guess < number: print('Buzz.... you guessed too low.') elif guess > number: print('Buzz.... you guessed too high.') else: print('Ding ding... you guessed it!')
int_convertor = IntConvertor() pos_int_validator = RangeValidator(min_val=1, max_val=None) zero_to_ten_validator = RangeValidator(min_val=0, max_val=10) exactly_0_validator = EqualToValidator(value=0) exactly_5_validator = EqualToValidator(value=5) not_0_validator = NoneOfValidator(validators=[exactly_0_validator]) not_5_validator = NoneOfValidator(validators=[exactly_5_validator]) in_0_or_5_validator = AnyOfValidator( validators=[exactly_0_validator, exactly_5_validator]) not_0_or_5_validator = NoneOfValidator( validators=[exactly_0_validator, exactly_5_validator]) convertor_fmt = '# {value} cannot be converted to {error_content} #' validator_fmt = '@ {value} {error_content} @' # get any integer - simplest way print(get_int()) # get any integer - with a default value print(get_int(default=5)) # more convenience function tests print( get_int(validators=NoneOfValidator(validators=0), prompt='Enter an integer that is not 0')) print( get_int(validators=None, minimum=-10, maximum=10, prompt='Enter an integer between -10 and 10')) print( get_int(validators=None,
def set_filter_len_action(row, action_dict): result = get_int(prompt='Enter the minimum user name length to show', minimum=0) action_dict['min_len'] = result
def test_get_int_part2(self): input_str = u""" foo 3.14 101 5 """ with redirect_stdin(StringIO(input_str)): result = get_int(validators=self.not_0_validator, prompt='Enter an integer that is not 0') assert (result == 101) input_str = u""" -11 11 5 """ with redirect_stdin(StringIO(input_str)): result = get_int(validators=None, minimum=-10, maximum=10, prompt='Enter an integer between -10 and 10') assert (result == 5) with redirect_stdin(StringIO(input_str)): result = get_int(validators=None, minimum=1, prompt='Enter an integer greater than 0') assert (result == 11) with redirect_stdin(StringIO(input_str)): result = get_int(validators=None, maximum=10, prompt='Enter an integer less than than 11') assert (result == -11) input_str = u""" -11 11 0 5 6 """ with redirect_stdin(StringIO(input_str)): result = get_int(validators=None, minimum=1, maximum=10, prompt='Enter an integer between 1 and 10') assert (result == 5) with redirect_stdin(StringIO(input_str)): result = get_int( validators=self.not_0_validator, minimum=-10, maximum=10, prompt='Enter an integer between -10 and 10, but not 0') assert (result == 5) with redirect_stdin(StringIO(input_str)): result = get_int( validators=[self.not_0_validator, self.not_5_validator], minimum=-10, maximum=10, prompt='Enter an integer between -10 and 10, but not 0 or 5') assert (result == 6)