def test_it_converts_to_float(key): assert ParamStoreResult(key, '100.001', None).to_float() == 100.001 assert ParamStoreResult(key, '02.00', None).to_float() == 2.00 assert ParamStoreResult(key, '0300', None).to_float() == 300 assert ParamStoreResult(key, 40.0, None).to_float() == 40.0 assert ParamStoreResult(key, ' ', None).to_float() is None assert ParamStoreResult(key, None, None).to_float() is None
def test_it_returns_none_for_none_or_empty_strings(key): assert ParamStoreResult(key, None, None).to_json() is None assert ParamStoreResult(key, '', None).to_json() is None assert ParamStoreResult(key, ' ', None).to_json() is None
def test_it_converts_to_json(key): assert ParamStoreResult(key, '{}', None).to_json() == {} assert ParamStoreResult(key, '{"one": 1, "two": { "three": "3" }}', None).to_json() == {"one": 1, "two": {"three": "3"}} assert ParamStoreResult(key, '[]', None).to_json() == [] assert ParamStoreResult(key, '[{"one": "one"}]', None).to_json() == [{"one": "one"}]
def test_it_uses_a_custom_delimiter_to_list(): assert ParamStoreResult(key, 'a|b|c', None).to_list(delimiter='|') == ['a', 'b', 'c']
def test_it_converts_to_list(key): value = '1, a , abcd,, ,' expected_value = ['1', 'a', 'abcd'] assert ParamStoreResult(key, value, None).to_list() == expected_value assert ParamStoreResult(key, '', None).to_list() == [] assert ParamStoreResult(key, None, None).to_list() == []
def test_it_uses_custom_true_values(key): assert ParamStoreResult(key, 'False', None).to_bool(true_values=['False']) is True
def test_it_converts_to_bool(key): for bool_value in ['true', 'True', ' tRUe ', 't', '1', True]: assert ParamStoreResult(key, bool_value, None).to_bool() is True for non_bool_value in ['false', 'False', 'fAlSe', 'f', '0', ' ', None]: assert ParamStoreResult(key, non_bool_value, None).to_bool() is False
def test_it_errors_when_converting_non_float_strings(key): for bad_string in ['not a number', 'one', 'a']: with pytest.raises(ValueError) as ex: ParamStoreResult(key, bad_string, None).to_float() assert 'could not convert string to float:' in str(ex.value)
def test_it_errors_when_converting_non_int_strings(key): for bad_string in ['not a number', 'one', 'a', '.1', '1.0']: with pytest.raises(ValueError) as ex: ParamStoreResult(key, bad_string, None).to_int() assert 'invalid literal for int()' in str(ex.value)
def test_it_converts_to_int(key): assert ParamStoreResult(key, '100', None).to_int() == 100 assert ParamStoreResult(key, '0200', None).to_int() == 200 assert ParamStoreResult(key, 3, None).to_int() == 3 assert ParamStoreResult(key, ' ', None).to_int() is None assert ParamStoreResult(key, None, None).to_int() is None
def test_it_has_the_store(param_store_result, key, value): assert param_store_result.store is None assert ParamStoreResult(key, value, ParamStore.Stores.SSM).store == ParamStore.Stores.SSM
def param_store_result(key, value): return ParamStoreResult(key, value, None)
def test_it_errors_when_converting_invalid_json_strings(key): for invalid_json in ['{', '{{}', 'asdf']: with pytest.raises(json.JSONDecodeError): ParamStoreResult(key, invalid_json, None).to_json()