コード例 #1
0
ファイル: test_base.py プロジェクト: watrt/mu
def test_micropython_mode_find_device_darwin_remove_extraneous_devices():
    """
    Check that if on OS X, only one version of the same device is shown,
    as OS X shows every device on two different ports.
    """
    editor = mock.MagicMock()
    view = mock.MagicMock()
    mm = MicroPythonMode(editor, view)
    mm.valid_boards = [(0x0D28, 0x0204, None, "micro:bit")]
    mock_port = mock.MagicMock()
    mock_port.portName = mock.MagicMock(return_value="tty.usbserial-XXX")
    mock_port.productIdentifier = mock.MagicMock(return_value=0x0204)
    mock_port.vendorIdentifier = mock.MagicMock(return_value=0x0D28)
    mock_port.serialNumber = mock.MagicMock(return_value="123456")
    mock_port2 = mock.MagicMock()
    mock_port2.portName = mock.MagicMock(return_value="cu.usbserial-XXX")
    mock_port2.productIdentifier = mock.MagicMock(return_value=0x0204)
    mock_port2.vendorIdentifier = mock.MagicMock(return_value=0x0D28)
    mock_port2.serialNumber = mock.MagicMock(return_value="123456")
    device = Device(
        mock_port2.vendorIdentifier(),
        mock_port2.productIdentifier(),
        "/dev/" + mock_port2.portName(),
        mock_port2.serialNumber(),
        "ARM",
        "BBC micro:bit",
        "microbit",
        None,
    )
    with mock.patch("sys.platform",
                    "darwin"), mock.patch("os.name", "posix"), mock.patch(
                        "mu.modes.base.QSerialPortInfo.availablePorts",
                        return_value=[mock_port, mock_port2],
                    ):
        assert mm.find_devices() == [device]
コード例 #2
0
ファイル: test_base.py プロジェクト: watrt/mu
def test_micropython_mode_find_device():
    """
    Ensure it's possible to detect a device and return the expected port.
    """
    editor = mock.MagicMock()
    view = mock.MagicMock()
    mm = MicroPythonMode(editor, view)
    mock_port = mock.MagicMock()
    for vid, pid, manufacturer, board_name in mm.valid_boards:
        mock_port.vid = vid
        mock_port.productIdentifier = mock.MagicMock(return_value=pid)
        mock_port.vendorIdentifier = mock.MagicMock(return_value=vid)
        mock_port.manufacturer = mock.MagicMock(return_value=manufacturer)
        mock_port.portName = mock.MagicMock(return_value="COM0")
        mock_port.serialNumber = mock.MagicMock(return_value="12345")
        mock_os = mock.MagicMock()
        mock_os.name = "nt"
        mock_sys = mock.MagicMock()
        mock_sys.platform = "win32"
        device = Device(
            mock_port.vendorIdentifier(),
            mock_port.productIdentifier(),
            mock_port.portName(),
            mock_port.serialNumber(),
            "micro:bit",
            board_name,
            None,
        )
        with mock.patch(
                "mu.modes.base.QSerialPortInfo.availablePorts",
                return_value=[mock_port],
        ), mock.patch("mu.modes.base.os",
                      mock_os), mock.patch("mu.modes.base.sys", mock_sys):
            assert mm.find_devices() == [device]
コード例 #3
0
ファイル: test_base.py プロジェクト: watrt/mu
def test_micropython_mode_find_device_no_ports():
    """
    There are no connected devices so return None.
    """
    editor = mock.MagicMock()
    view = mock.MagicMock()
    mm = MicroPythonMode(editor, view)
    with mock.patch("mu.modes.base.QSerialPortInfo.availablePorts",
                    return_value=[]):
        assert mm.find_devices() == []
コード例 #4
0
ファイル: test_base.py プロジェクト: watrt/mu
def test_micropython_mode_find_device_but_no_device():
    """
    None of the connected devices is a valid board so return None.
    """
    editor = mock.MagicMock()
    view = mock.MagicMock()
    mm = MicroPythonMode(editor, view)
    mock_port = mock.MagicMock()
    mock_port.productIdentifier = mock.MagicMock(return_value=666)
    mock_port.vendorIdentifier = mock.MagicMock(return_value=999)
    mock_port.serialNumber = mock.MagicMock(return_value="123456")
    with mock.patch(
            "mu.modes.base.QSerialPortInfo.availablePorts",
            return_value=[mock_port],
    ):
        assert mm.find_devices() == []