Ignore patching when not on MacOS
This commit is contained in:
parent
2d56f35071
commit
c1c71fb994
|
@ -263,13 +263,18 @@ class MockStatusPacket(MockDynamixelPacketv2):
|
||||||
|
|
||||||
|
|
||||||
class MockPortHandler(dxl.PortHandler):
|
class MockPortHandler(dxl.PortHandler):
|
||||||
def setupPort(self, baud): # noqa: N802
|
"""
|
||||||
|
This class overwrite the 'setupPort' method of the dynamixel PortHandler because it can specify
|
||||||
|
baudrates that are not supported with a serial port on MacOS.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def setupPort(self, cflag_baud): # noqa: N802
|
||||||
if self.is_open:
|
if self.is_open:
|
||||||
self.closePort()
|
self.closePort()
|
||||||
|
|
||||||
self.ser = serial.Serial(
|
self.ser = serial.Serial(
|
||||||
port=self.port_name,
|
port=self.port_name,
|
||||||
# baudrate=self.baudrate, <- This is forbidden for ttys ports (on macos at least)
|
# baudrate=self.baudrate, <- This will fail on MacOS
|
||||||
# parity = serial.PARITY_ODD,
|
# parity = serial.PARITY_ODD,
|
||||||
# stopbits = serial.STOPBITS_TWO,
|
# stopbits = serial.STOPBITS_TWO,
|
||||||
bytesize=serial.EIGHTBITS,
|
bytesize=serial.EIGHTBITS,
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import sys
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import dynamixel_sdk as dxl
|
import dynamixel_sdk as dxl
|
||||||
|
@ -9,12 +10,16 @@ from tests.mocks.mock_dynamixel import MockInstructionPacket, MockMotors, MockPo
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def patch_port_handler():
|
def patch_port_handler():
|
||||||
|
if sys.platform == "darwin":
|
||||||
with patch.object(dxl, "PortHandler", MockPortHandler):
|
with patch.object(dxl, "PortHandler", MockPortHandler):
|
||||||
yield # Patch is applied for the duration of each test
|
yield
|
||||||
|
else:
|
||||||
|
yield
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skipif(sys.platform != "darwin", reason=f"No patching needed on {sys.platform=}")
|
||||||
def test_autouse_patch():
|
def test_autouse_patch():
|
||||||
"""Ensure that the autouse fixture correctly patches dxl.PortHandler with MockPortHandler."""
|
"""Ensures that the autouse fixture correctly patches dxl.PortHandler with MockPortHandler."""
|
||||||
assert dxl.PortHandler is MockPortHandler
|
assert dxl.PortHandler is MockPortHandler
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue