102 lines
3.8 KiB
Python
Executable File
102 lines
3.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import linuxcnc
|
|
|
|
ini = linuxcnc.ini("values.ini")
|
|
|
|
# Test availability testing
|
|
if ini.hassection("notasection"):
|
|
print("Missing section was wrongfully detected")
|
|
else:
|
|
print("Missing section was missing")
|
|
|
|
if ini.hassection("section"):
|
|
print("Present section was present")
|
|
else:
|
|
print("Present section was wrongfully detected as not present")
|
|
|
|
if ini.hasvariable("section", "missing"):
|
|
print("Missing variable was detected to be present")
|
|
else:
|
|
print("Missing variable was missing")
|
|
|
|
if ini.hasvariable("section", "variable"):
|
|
print("Present [section]variable was present")
|
|
else:
|
|
print("Present [section]variable was wrongfully detected as not present")
|
|
|
|
# Test booleans
|
|
for n in range(1, 9+1):
|
|
print("Bool {}: {}".format(n, ini.getbool("booleans", "bool", n)))
|
|
if True != ini.getbool("booleans", "missing", fallback=True):
|
|
print("Bool default True failed")
|
|
if False != ini.getbool("booleans", "missing", fallback=False):
|
|
print("Bool default False failed")
|
|
if "hello" != ini.getbool("booleans", "missing", fallback="hello"):
|
|
print("Bool default 'hello' failed")
|
|
|
|
# Test integers
|
|
for n in range(1, 9+1):
|
|
print("Int {}: {}".format(n, ini.getsint("integers", "int", n)))
|
|
if 42 != ini.getsint("integers", "missing", fallback=42):
|
|
print("Int default 42 failed")
|
|
if "_42" != ini.getsint("integers", "missing", fallback="_42"): # any fallback type is returned
|
|
print("Int default '_42' failed")
|
|
if ini.getsint("integers", "int") != ini.getint("integers", "int"):
|
|
print("getsint/getint alias error")
|
|
|
|
# Test unsigneds
|
|
for n in range(1, 6+1):
|
|
print("Unsigned {}: {}".format(n, ini.getuint("unsigneds", "unsigned", n)))
|
|
if 42 != ini.getuint("unsigneds", "missing", fallback=42):
|
|
print("Unsigned default 42 failed")
|
|
if "_42" != ini.getuint("unsigneds", "missing", fallback="_42"): # any fallback type is returned
|
|
print("Unsigned default '_42' failed")
|
|
|
|
# Test reals
|
|
for n in range(1, 5+1):
|
|
print("Real {}: {}".format(n, ini.getreal("reals", "real", n)))
|
|
if 42 != ini.getreal("reals", "missing", fallback=4.2e1):
|
|
print("Real default 4.2e1 failed")
|
|
if "_42" != ini.getreal("reals", "missing", fallback="_42"): # any fallback type is returned
|
|
print("Real default '_42' failed")
|
|
if ini.getreal("reals", "real") != ini.getfloat("reals", "real"):
|
|
print("getreal/getfloat alias error")
|
|
|
|
# Test strings
|
|
for n in range(1, 8+1):
|
|
print("String {}: '{}'".format(n, ini.getstring("strings", "string", n)))
|
|
# One more to get None back, but we don't want the quotes
|
|
print("String {}: {}".format(n+1, ini.getstring("strings", "string", n+1)))
|
|
if None != ini.getstring("strings", "missing"):
|
|
print("String not found failed")
|
|
if "|_-42-_|" != ini.getstring("strings", "missing", fallback="|_-42-_|"):
|
|
print("String default '|_-42-_|' failed")
|
|
|
|
# Test sections and variables
|
|
print("Sections:")
|
|
for s in ini.getsections():
|
|
print("-> {}".format(s))
|
|
print("Variables of [section]:")
|
|
for v in ini.getvariables("section"):
|
|
print("-> {}".format(v))
|
|
print("Variables of all sections:")
|
|
for v in ini.getvariables():
|
|
print("-> {}".format(v))
|
|
print("Variables of non-existent section:", ini.getvariables("not_a_section_we_know_of"))
|
|
|
|
# Test find/findall
|
|
if None != ini.find("section", "missing"):
|
|
print("find: Missing value was not missing")
|
|
|
|
# Test lineof
|
|
f, l = ini.lineof("integers", "int")
|
|
print("{}:{}: [integers]int='{}'".format(f, l, ini.getint("integers", "int")))
|
|
f, l = ini.lineof("strings", "string", 3)
|
|
print("{}:{}: [strings]string='{}'".format(f, l, ini.getstring("strings", "string", 3)))
|
|
f, l = ini.lineof("missing", "missing")
|
|
print("{}:{}: [missing]missing={}".format(f, l, ini.getstring("missing", "missing")))
|
|
|
|
print("findall [section2]key1:", ", ".join(ini.findall("section2", "key1")))
|
|
print("findall [section2]:", ", ".join(ini.findall("section2", "")))
|