pygpibtoolkit/test/test_prologix_emulator.py

changeset 101
975576e55563
child 102
91713944ebb0
--- /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

mercurial