pygpibtoolkit/test/test_prologix_emulator.py

Sat, 19 May 2018 00:07:15 +0200

author
David Douard <david.douard@logilab.fr>
date
Sat, 19 May 2018 00:07:15 +0200
changeset 101
975576e55563
child 102
91713944ebb0
permissions
-rw-r--r--

[prologix] beginning of a proper prologix dongle emulator

101
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 #
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
2 import serial
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
3 import time
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
4 import pygpibtoolkit.prologix_emulator as PE
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
5
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
6 import pytest
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
7
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
8
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
9 @pytest.fixture(scope='session')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10 def emulator():
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11 emul = PE.BasePrologixEmulator()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
12 cnx = serial.Serial(emul.serialurl, timeout=0)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
13 yield (emul, cnx)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14 emul.close()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
15 cnx.close()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
16
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
17
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
18 def test_base(emulator):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
19 emul, cnx = emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
20 emul.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
21 assert emul.mode == 1
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
22 assert emul.addr == 5
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
23
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
24
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
25 def test_cmd_mode_get(emulator):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
26 emul, cnx = emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
27 emul.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
28 cnx.write(b'++mode\r\n')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
29 time.sleep(0.1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
30 result = cnx.readlines()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
31 assert len(result) == 1
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
32 result = result[0].strip()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
33 assert result == b'1'
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
34
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
35
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
36 def test_cmd_mode_set(emulator):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
37 emul, cnx = emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
38 emul.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
39 cnx.write(b'++mode 0\r\n')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
40 time.sleep(0.1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
41 result = cnx.readlines()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
42 assert len(result) == 0
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
43 assert emul.mode == 0
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
44
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
45
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
46 def test_cmd_mode_err(emulator):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
47 emul, cnx = emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
48 emul.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
49 for value in (b'2', b'0 0', b'a'):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
50 cnx.write(b'++mode %s\r\n' % value)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
51 time.sleep(0.1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
52 result = cnx.readlines()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
53 assert len(result) == 1
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
54 result = result[0].strip()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
55 assert result == b'Error'
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
56 assert emul.mode == 1
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
57
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
58
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
59 def test_cmd_addr_get(emulator):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
60 emul, cnx = emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
61 emul.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
62 cnx.write(b'++addr\r\n')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
63 time.sleep(0.1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
64 result = cnx.readlines()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
65 assert len(result) == 1
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
66 result = result[0].strip()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
67 assert result == b'5'
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
68
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
69
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
70 def test_cmd_addr_set(emulator):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
71 emul, cnx = emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
72 emul.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
73 for value in (0, 1, 10, 31):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
74 cnx.write(b'++addr %s\r\n' % str(value).encode())
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
75 time.sleep(0.1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
76 result = cnx.readlines()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
77 assert len(result) == 0
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
78 assert emul.addr == value
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
79
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
80
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
81 def test_cmd_addr_err(emulator):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
82 emul, cnx = emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
83 emul.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
84 for value in (b'-2', b'0 0', b'a'):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
85 cnx.write(b'++addr %s\r\n' % value)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
86 time.sleep(0.1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
87 result = cnx.readlines()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
88 assert len(result) == 1
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
89 result = result[0].strip()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
90 assert result == b'Error'
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
91 assert emul.addr == 5

mercurial