Sat, 19 May 2018 00:07:15 +0200
[prologix] beginning of a proper prologix dongle emulator
# import serial import time import pygpibtoolkit.prologix_emulator as PE import pytest @pytest.fixture(scope='session') def emulator(): emul = PE.BasePrologixEmulator() cnx = serial.Serial(emul.serialurl, timeout=0) yield (emul, cnx) emul.close() cnx.close() def test_base(emulator): emul, cnx = emulator emul.reset() assert emul.mode == 1 assert emul.addr == 5 def test_cmd_mode_get(emulator): emul, cnx = emulator emul.reset() cnx.write(b'++mode\r\n') time.sleep(0.1) result = cnx.readlines() assert len(result) == 1 result = result[0].strip() assert result == b'1' def test_cmd_mode_set(emulator): emul, cnx = emulator emul.reset() cnx.write(b'++mode 0\r\n') time.sleep(0.1) result = cnx.readlines() assert len(result) == 0 assert emul.mode == 0 def test_cmd_mode_err(emulator): emul, cnx = emulator emul.reset() for value in (b'2', b'0 0', b'a'): cnx.write(b'++mode %s\r\n' % value) time.sleep(0.1) result = cnx.readlines() assert len(result) == 1 result = result[0].strip() assert result == b'Error' assert emul.mode == 1 def test_cmd_addr_get(emulator): emul, cnx = emulator emul.reset() cnx.write(b'++addr\r\n') time.sleep(0.1) result = cnx.readlines() assert len(result) == 1 result = result[0].strip() assert result == b'5' def test_cmd_addr_set(emulator): emul, cnx = emulator emul.reset() for value in (0, 1, 10, 31): cnx.write(b'++addr %s\r\n' % str(value).encode()) time.sleep(0.1) result = cnx.readlines() assert len(result) == 0 assert emul.addr == value def test_cmd_addr_err(emulator): emul, cnx = emulator emul.reset() for value in (b'-2', b'0 0', b'a'): cnx.write(b'++addr %s\r\n' % value) time.sleep(0.1) result = cnx.readlines() assert len(result) == 1 result = result[0].strip() assert result == b'Error' assert emul.addr == 5