1#! /usr/bin/env python
2#
3# This file is part of pySerial - Cross platform serial port support for Python
4# (C) 2017 Guillaume Galeazzi <[email protected]>
5#
6# SPDX-License-Identifier:    BSD-3-Clause
7"""\
8Some tests for the serial module.
9Part of pySerial (http://pyserial.sf.net)  (C)2001-2011 [email protected]
10
11Intended to be run on different platforms, to ensure portability of
12the code.
13
14Cover some of the aspects of context management
15"""
16
17import unittest
18import serial
19
20# on which port should the tests be performed:
21PORT = 'loop://'
22
23
24class Test_Context(unittest.TestCase):
25    """Test context"""
26
27    def setUp(self):
28        # create a closed serial port
29        self.s = serial.serial_for_url(PORT)
30
31    def tearDown(self):
32        self.s.close()
33
34    def test_with_idempotent(self):
35        with self.s as stream:
36            stream.write(b'1234')
37
38        # do other stuff like calling an exe which use COM4
39
40        with self.s as stream:
41            stream.write(b'5678')
42
43
44if __name__ == '__main__':
45    import sys
46    sys.stdout.write(__doc__)
47    sys.argv[1:] = ['-v']
48    # When this module is executed from the command-line, it runs all its tests
49    unittest.main()
50