def test_input_on_stderr(): from bigchaindb.commands.utils import input_on_stderr, _convert with patch('builtins.input', return_value='I love cats'): assert input_on_stderr() == 'I love cats' # input_on_stderr uses `_convert` internally, from now on we will # just use that function assert _convert('hack the planet') == 'hack the planet' assert _convert('42') == '42' assert _convert('42', default=10) == 42 assert _convert('', default=10) == 10 assert _convert('42', convert=int) == 42 assert _convert('True', convert=bool) is True assert _convert('False', convert=bool) is False assert _convert('t', convert=bool) is True assert _convert('3.14', default=1.0) == 3.14 assert _convert('TrUe', default=False) is True with pytest.raises(ValueError): assert _convert('TRVE', default=False) with pytest.raises(ValueError): assert _convert('ಠ_ಠ', convert=int)