--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pygpibtoolkit/test/test_prologix_emulator.py Sat May 19 00:07:15 2018 +0200 @@ -0,0 +1,91 @@ +# +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