1
# -*- coding: utf-8 -*-
3
from __future__ import division, unicode_literals, print_function, absolute_import
5
from pyvisa import constants
6
from pyvisa.compat import unittest
7
from pyvisa.testsuite import BaseTestCase
9
pyvisapy = __import__('pyvisa-py')
11
parse = pyvisapy.common.parse_resource_name
15
class TestParsers(BaseTestCase):
17
def _parse_test(self, rn, **kwargs):
18
result = dict(resource_name=rn, **kwargs)
19
self.assertEqual(parse(rn), result)
21
@unittest.expectedFailure
22
def test_asrl_ethernet(self):
23
self._parse_test('ASRL::1.2.3.4::2::INSTR',
24
interface_type=constants.InterfaceType.asrl,
25
resource_class='INSTR',
30
self._parse_test('ASRL1::INSTR',
31
interface_type=constants.InterfaceType.asrl,
32
resource_class='INSTR',
34
canonical_resource_name='ASRL1::INSTR')
36
self._parse_test('ASRL1',
37
interface_type=constants.InterfaceType.asrl,
38
resource_class='INSTR',
40
canonical_resource_name='ASRL1::INSTR')
42
def test_gpib_instr(self):
43
self._parse_test('GPIB::1::0::INSTR',
44
interface_type=constants.InterfaceType.gpib,
45
resource_class='INSTR',
48
secondary_address='0',
49
canonical_resource_name='GPIB0::1::0::INSTR')
51
self._parse_test('GPIB::1::INSTR',
52
interface_type=constants.InterfaceType.gpib,
53
resource_class='INSTR',
56
secondary_address=65535,
57
canonical_resource_name='GPIB0::1::65535::INSTR')
59
self._parse_test('GPIB1::1::INSTR',
60
interface_type=constants.InterfaceType.gpib,
61
resource_class='INSTR',
64
secondary_address=65535,
65
canonical_resource_name='GPIB1::1::65535::INSTR')
67
self._parse_test('GPIB1::1',
68
interface_type=constants.InterfaceType.gpib,
69
resource_class='INSTR',
72
secondary_address=65535,
73
canonical_resource_name='GPIB1::1::65535::INSTR')
75
def test_gpib_intf(self):
76
self._parse_test('GPIB::INTFC',
77
interface_type=constants.InterfaceType.gpib,
78
resource_class='INTFC',
80
canonical_resource_name='GPIB0::INTFC')
82
self._parse_test('GPIB3::INTFC',
83
interface_type=constants.InterfaceType.gpib,
84
resource_class='INTFC',
86
canonical_resource_name='GPIB3::INTFC')
88
def test_tcpip_intr(self):
89
self._parse_test('TCPIP::dev.company.com::INSTR',
90
interface_type=constants.InterfaceType.tcpip,
91
resource_class='INSTR',
92
host_address='dev.company.com',
94
lan_device_name='inst0',
95
canonical_resource_name='TCPIP0::dev.company.com::inst0::INSTR')
97
self._parse_test('TCPIP3::dev.company.com::inst3::INSTR',
98
interface_type=constants.InterfaceType.tcpip,
99
resource_class='INSTR',
100
host_address='dev.company.com',
102
lan_device_name='inst3',
103
canonical_resource_name='TCPIP3::dev.company.com::inst3::INSTR')
105
self._parse_test('TCPIP3::1.2.3.4::inst3::INSTR',
106
interface_type=constants.InterfaceType.tcpip,
107
resource_class='INSTR',
108
host_address='1.2.3.4',
110
lan_device_name='inst3',
111
canonical_resource_name='TCPIP3::1.2.3.4::inst3::INSTR')
113
def test_tcpip_socket(self):
114
self._parse_test('TCPIP::1.2.3.4::999::SOCKET',
115
interface_type=constants.InterfaceType.tcpip,
116
resource_class='SOCKET',
117
host_address='1.2.3.4',
120
canonical_resource_name='TCPIP0::1.2.3.4::999::SOCKET')
122
self._parse_test('TCPIP2::1.2.3.4::999::SOCKET',
123
interface_type=constants.InterfaceType.tcpip,
124
resource_class='SOCKET',
125
host_address='1.2.3.4',
128
canonical_resource_name='TCPIP2::1.2.3.4::999::SOCKET')
130
def test_usb_instr(self):
131
self._parse_test('USB::0x1234::125::A22-5::INSTR',
132
interface_type=constants.InterfaceType.usb,
133
resource_class='INSTR',
134
manufacturer_id='0x1234',
136
serial_number='A22-5',
138
usb_interface_number='0',
139
canonical_resource_name='USB0::0x1234::125::A22-5::0::INSTR')
141
self._parse_test('USB2::0x1234::125::A22-5::INSTR',
142
interface_type=constants.InterfaceType.usb,
143
resource_class='INSTR',
144
manufacturer_id='0x1234',
146
serial_number='A22-5',
148
usb_interface_number='0',
149
canonical_resource_name='USB2::0x1234::125::A22-5::0::INSTR')
151
self._parse_test('USB::0x1234::125::A22-5',
152
interface_type=constants.InterfaceType.usb,
153
resource_class='INSTR',
154
manufacturer_id='0x1234',
156
serial_number='A22-5',
158
usb_interface_number='0',
159
canonical_resource_name='USB0::0x1234::125::A22-5::0::INSTR')
161
self._parse_test('USB::0x1234::125::A22-5::3::INSTR',
162
interface_type=constants.InterfaceType.usb,
163
resource_class='INSTR',
164
manufacturer_id='0x1234',
166
serial_number='A22-5',
168
usb_interface_number='3',
169
canonical_resource_name='USB0::0x1234::125::A22-5::3::INSTR')
171
self._parse_test('USB2::0x1234::125::A22-5::3::INSTR',
172
interface_type=constants.InterfaceType.usb,
173
resource_class='INSTR',
174
manufacturer_id='0x1234',
176
serial_number='A22-5',
178
usb_interface_number='3',
179
canonical_resource_name='USB2::0x1234::125::A22-5::3::INSTR')
181
self._parse_test('USB1::0x1234::125::A22-5::3',
182
interface_type=constants.InterfaceType.usb,
183
resource_class='INSTR',
184
manufacturer_id='0x1234',
186
serial_number='A22-5',
188
usb_interface_number='3',
189
canonical_resource_name='USB1::0x1234::125::A22-5::3::INSTR')
191
def test_usb_raw(self):
192
self._parse_test('USB::0x1234::125::A22-5::RAW',
193
interface_type=constants.InterfaceType.usb,
194
resource_class='RAW',
195
manufacturer_id='0x1234',
197
serial_number='A22-5',
199
usb_interface_number='0',
200
canonical_resource_name='USB0::0x1234::125::A22-5::0::RAW')
202
self._parse_test('USB2::0x1234::125::A22-5::RAW',
203
interface_type=constants.InterfaceType.usb,
204
resource_class='RAW',
205
manufacturer_id='0x1234',
207
serial_number='A22-5',
209
usb_interface_number='0',
210
canonical_resource_name='USB2::0x1234::125::A22-5::0::RAW')
212
self._parse_test('USB2::0x1234::125::A22-5::3::RAW',
213
interface_type=constants.InterfaceType.usb,
214
resource_class='RAW',
215
manufacturer_id='0x1234',
217
serial_number='A22-5',
219
usb_interface_number='3',
220
canonical_resource_name='USB2::0x1234::125::A22-5::3::RAW')