示例#1
0
    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)
示例#2
0
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!')
示例#3
0
    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,
示例#4
0
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
示例#5
0
    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)