blob: df77e8cea35d89d9b47a82aaa39d199b25c990d0 [file] [log] [blame]
Chris Liechti33f0ec52015-08-06 16:37:21 +02001#!/usr/bin/env python
2
3# Python Serial Port Extension for Win32, Linux, BSD, Jython
4# see __init__.py
5#
6# (C) 2015 Chris Liechti <cliechti@gmx.net>
7# this is distributed under a free software license, see license.txt
8
9"""\
10Test RS485 related functionality.
11"""
12
13import unittest
14import serial
15import serial.rs485
16
17# on which port should the tests be performed:
18PORT = 0
19
20class Test_RS485_settings(unittest.TestCase):
21 """Test RS485 related functionality"""
22
23 def setUp(self):
24 # create a closed serial port
25 self.s = serial.serial_for_url(PORT, do_not_open=True)
26
27 def tearDown(self):
28 self.s.close()
29
30 def test_enable_RS485(self):
31 # XXX open() port - but will result in fail for most HW...
32 #~ self.s.open()
33 self.failUnlessEqual(self.s._rs485_mode, None, 'RS485 is disabled by default')
34 self.failUnlessEqual(self.s.rs485_mode, None, 'RS485 is disabled by default')
35 self.s.rs485_mode = serial.rs485.RS485Settings()
36 self.failUnless(self.s._rs485_mode is not None, 'RS485 is enabled')
37 self.failUnless(self.s.rs485_mode is not None, 'RS485 is enabled')
38 self.s.rs485_mode = None
39 self.failUnlessEqual(self.s._rs485_mode, None, 'RS485 is disabled again')
40 self.failUnlessEqual(self.s.rs485_mode, None, 'RS485 is disabled again')
41
42
43class Test_RS485_class(unittest.TestCase):
44 """Test RS485 class"""
45
46 def setUp(self):
47 self.s = serial.rs485.RS485(PORT, timeout=3)
48
49 def tearDown(self):
50 self.s.close()
51
52 def test_RS485_class(self):
53 self.s.rs485_mode = serial.rs485.RS485Settings()
54 self.s.write(b'hello')
55 self.failUnlessEqual(self.s.read(5), b'hello')
56
57
58
59if __name__ == '__main__':
60 import sys
61 sys.stdout.write(__doc__)
62 if len(sys.argv) > 1:
63 PORT = sys.argv[1]
64 sys.stdout.write("Testing port: %r\n" % PORT)
65 sys.argv[1:] = ['-v']
66 # When this module is executed from the command-line, it runs all its tests
67 unittest.main()