blob: 043cb513c4eba89cfe8f18b461411b1ffbb9673c [file] [log] [blame]
Miguel Sánchez de León Peque8eb2fd82016-05-08 15:37:14 +02001#!/usr/bin/env python
2#
3# This file is part of pySerial - Cross platform serial port support for Python
Chris Liechtia7db97c2016-05-10 23:46:38 +02004# (C) 2016 Chris Liechti <cliechti@gmx.net>
Miguel Sánchez de León Peque8eb2fd82016-05-08 15:37:14 +02005#
6# SPDX-License-Identifier: BSD-3-Clause
7"""
8Test PTY related functionality.
9"""
10
11import os
12import sys
Chris Liechtia7db97c2016-05-10 23:46:38 +020013
14try:
15 import pty
16except ImportError:
17 pty = None
Miguel Sánchez de León Peque8eb2fd82016-05-08 15:37:14 +020018import unittest
19import serial
20
21
Chris Liechtia7db97c2016-05-10 23:46:38 +020022@unittest.skipIf(pty is None, "pty module not supported on platform")
Miguel Sánchez de León Peque8eb2fd82016-05-08 15:37:14 +020023class Test_Pty_Serial_Open(unittest.TestCase):
24 """Test PTY serial open"""
25
26 def setUp(self):
27 # Open PTY
28 self.master, self.slave = pty.openpty()
29
30 def test_pty_serial_open(self):
Chris Liechti88e10642017-03-09 23:56:19 +010031 with serial.Serial(os.ttyname(self.slave), timeout=1) as slave:
32 with os.fdopen(self.master, "wb") as fd:
33 fd.write(DATA)
34 fd.flush()
35 out = slave.read(len(DATA))
36 self.assertEqual(DATA, out)
Miguel Sánchez de León Peque8eb2fd82016-05-08 15:37:14 +020037
38
39if __name__ == '__main__':
40 sys.stdout.write(__doc__)
41 # When this module is executed from the command-line, it runs all its tests
42 unittest.main()