kopia lustrzana https://github.com/Hamlib/Hamlib
Allow to execute some tests with a simulator or with a real rotator
To execute the tests with the installed Hamlib use the same long arguments as rotctl, eg: bindings/python/test_rot.py --model {MODEL_NUMBER} --rot-file /dev/ttyUSB0 --serial-speed {BAUD} To execute the tests from the build tree, add the path to the libraries that you built, eg. from the root of the build tree: PYTHONPATH=bindings/:bindings/.libs/ ...your command...pull/1790/head
rodzic
eefdda51e5
commit
6088445635
|
@ -1,13 +1,20 @@
|
||||||
"""Tests of the Python bindings for Hamlib
|
"""Tests of the Python bindings for Hamlib
|
||||||
"""
|
"""
|
||||||
import pytest
|
import pytest
|
||||||
|
import sys
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
# using long options only because short options conflict with pytest's
|
# using long options only because short options conflict with pytest's
|
||||||
|
if sys.argv[1].endswith("rig.py"):
|
||||||
parser.addoption('--model', type=int, default=1,
|
parser.addoption('--model', type=int, default=1,
|
||||||
metavar='ID', help='select radio model number')
|
metavar='ID', help='select radio model number')
|
||||||
parser.addoption('--rig-file', default=None,
|
parser.addoption('--rig-file', default=None,
|
||||||
metavar='DEVICE', help='set device of the radio to operate on')
|
metavar='DEVICE', help='set device of the radio to operate on')
|
||||||
|
elif sys.argv[1].endswith("rot.py"):
|
||||||
|
parser.addoption('--model', type=int, default=1,
|
||||||
|
metavar='ID', help='select rotator model number')
|
||||||
|
parser.addoption('--rot-file', default=None,
|
||||||
|
metavar='DEVICE', help='set device of the rotator to operate on')
|
||||||
parser.addoption('--serial-speed', type=int, default=0,
|
parser.addoption('--serial-speed', type=int, default=0,
|
||||||
metavar='BAUD', help='set serial speed of the serial port')
|
metavar='BAUD', help='set serial speed of the serial port')
|
||||||
parser.addoption('--hamlib-verbose', action='count', default=0,
|
parser.addoption('--hamlib-verbose', action='count', default=0,
|
||||||
|
|
|
@ -11,8 +11,6 @@ import Hamlib
|
||||||
|
|
||||||
Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE)
|
Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE)
|
||||||
|
|
||||||
ROT_MODEL = Hamlib.ROT_MODEL_DUMMY
|
|
||||||
|
|
||||||
class TestClass:
|
class TestClass:
|
||||||
"""Container class for tests"""
|
"""Container class for tests"""
|
||||||
|
|
||||||
|
@ -23,9 +21,9 @@ class TestClass:
|
||||||
# TOK_EL_ROT_MAGICCOMBO = 5 # handled by get_ext_level/set_ext_level
|
# TOK_EL_ROT_MAGICCOMBO = 5 # handled by get_ext_level/set_ext_level
|
||||||
TOK_EL_ROT_MAGICEXTFUNC = 6
|
TOK_EL_ROT_MAGICEXTFUNC = 6
|
||||||
|
|
||||||
def test_without_open(self):
|
def test_without_open(self, model):
|
||||||
"""Call all the methods that do not depend on open()"""
|
"""Call all the methods that do not depend on open()"""
|
||||||
rot = Hamlib.Rot(ROT_MODEL)
|
rot = Hamlib.Rot(model)
|
||||||
assert rot is not None
|
assert rot is not None
|
||||||
assert rot.do_exception == 0
|
assert rot.do_exception == 0
|
||||||
assert rot.error_status == Hamlib.RIG_OK
|
assert rot.error_status == Hamlib.RIG_OK
|
||||||
|
@ -42,14 +40,17 @@ class TestClass:
|
||||||
assert isinstance(conf, str)
|
assert isinstance(conf, str)
|
||||||
assert rot.set_conf("mcfg", "foo") is None
|
assert rot.set_conf("mcfg", "foo") is None
|
||||||
conf = rot.get_conf("mcfg")
|
conf = rot.get_conf("mcfg")
|
||||||
|
if model == Hamlib.ROT_MODEL_DUMMY:
|
||||||
assert conf == "foo"
|
assert conf == "foo"
|
||||||
|
else:
|
||||||
|
assert conf == ""
|
||||||
|
|
||||||
assert rot.token_lookup("") is None
|
assert rot.token_lookup("") is None
|
||||||
|
|
||||||
|
|
||||||
def test_with_open(self):
|
def test_with_open(self, model):
|
||||||
"""Call all the methods that depend on open()"""
|
"""Call all the methods that depend on open()"""
|
||||||
rot = Hamlib.Rot(ROT_MODEL)
|
rot = Hamlib.Rot(model)
|
||||||
assert rot is not None
|
assert rot is not None
|
||||||
|
|
||||||
assert rot.state.comm_state == 0
|
assert rot.state.comm_state == 0
|
||||||
|
@ -106,9 +107,9 @@ class TestClass:
|
||||||
assert info is None
|
assert info is None
|
||||||
|
|
||||||
|
|
||||||
def test_object_creation(self):
|
def test_object_creation(self, model):
|
||||||
"""Create all objects available"""
|
"""Create all objects available"""
|
||||||
rot = Hamlib.Rig(ROT_MODEL)
|
rot = Hamlib.Rig(model)
|
||||||
assert rot is not None
|
assert rot is not None
|
||||||
|
|
||||||
assert isinstance(rot.caps, Hamlib.rig_caps)
|
assert isinstance(rot.caps, Hamlib.rig_caps)
|
||||||
|
|
Ładowanie…
Reference in New Issue