MT#56535 Add support of float numbers

Previously 'set-value' sets 1 even in case 1.0 was passed.
Check if the value is number and if yes - do not reval() it.

Add a testcase for a float number.

Change-Id: I6b4e014b036fe12ad62206ad3386d0bf0b1225f7
mr11.3
Mykola Malkov 2 years ago
parent f584b336f1
commit a38c0e6381

@ -71,7 +71,14 @@ sub set_value {
$value = "\"$value\"";
}
$value = $compartment->reval($value);
# If the value is a float number like N.0 - reval turns it into int N
# even if it's quoted.
if ($value =~ /^['"]?\d+\.\d+['"]?$/ ) {
log_debug ('$value is a float number so no need to reval() it');
}
else {
$value = $compartment->reval($value);
}
for my $component (split(/\./, $option)) {
if (ref($valref) eq 'SCALAR' && defined(${$valref})) {

@ -739,6 +739,29 @@ aaa:
assert "" in out.stderr
assert out.returncode == 0
@pytest.mark.tt_16903
def test_set_float_number(ngcpcfgcli, tmpdir):
tmpfile = tmpdir.join("tmpfile.txt")
tmpfile.write(
"""---
aaa:
bbb: ''
"""
)
out = ngcpcfgcli("set", str(tmpfile), "aaa.bbb=1.0")
assert (
tmpfile.read()
== """---
aaa:
bbb: '1.0'
"""
)
assert "" in out.stdout
assert "" in out.stderr
assert out.returncode == 0
###############################################################
# ngcpcfg del
###############################################################

Loading…
Cancel
Save