diff options
Diffstat (limited to 'tests/extmod/ssl_basic.py')
-rw-r--r-- | tests/extmod/ssl_basic.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/extmod/ssl_basic.py b/tests/extmod/ssl_basic.py new file mode 100644 index 000000000..d035798c9 --- /dev/null +++ b/tests/extmod/ssl_basic.py @@ -0,0 +1,69 @@ +# very basic test of ssl module, just to test the methods exist + +try: + import io + import ssl +except ImportError: + print("SKIP") + raise SystemExit + + +class TestSocket(io.IOBase): + def write(self, buf): + return len(buf) + + def readinto(self, buf): + return 0 + + def ioctl(self, cmd, arg): + print("TestSocket.ioctl", cmd, arg) + return 0 + + def setblocking(self, value): + print("TestSocket.setblocking({})".format(value)) + + +# create in client mode +try: + ss = ssl.wrap_socket(TestSocket(), server_hostname="test.example.com") +except OSError as er: + print("OSError: client") + +# create in server mode (can use this object for further tests) +ss = ssl.wrap_socket(TestSocket(), server_side=1, do_handshake=0) + +# print +print(repr(ss)[:12]) + +# setblocking() propagates call to the underlying stream object +ss.setblocking(False) +ss.setblocking(True) + +# write +try: + ss.write(b"aaaa") +except OSError: + pass + +# read (underlying socket has no data) +try: + ss.read(8) +except OSError: + pass + +# close +ss.close() +# close 2nd time +ss.close() + +# read on closed socket +try: + ss.read(10) +except OSError as er: + print("OSError: read") + +# write on closed socket +try: + ss.write(b"aaaa") +except OSError as er: + print("OSError: write") |