Convert ALPN and SessionTests to use pytest-style tests (#570)

* Convert ALPN tests to be pytest-style

* Convert SessionTests to be pytest-style
diff --git a/tests/test_ssl.py b/tests/test_ssl.py
index 62bbbf7..ee849fd 100644
--- a/tests/test_ssl.py
+++ b/tests/test_ssl.py
@@ -1854,7 +1854,7 @@
         assert select_args == []
 
 
-class ApplicationLayerProtoNegotiationTests(TestCase, _LoopbackMixin):
+class TestApplicationLayerProtoNegotiation(object):
     """
     Tests for ALPN in PyOpenSSL.
     """
@@ -1892,12 +1892,12 @@
             client = Connection(client_context, None)
             client.set_connect_state()
 
-            self._interactInMemory(server, client)
+            interact_in_memory(server, client)
 
-            self.assertEqual([(server, [b'http/1.1', b'spdy/2'])], select_args)
+            assert select_args == [(server, [b'http/1.1', b'spdy/2'])]
 
-            self.assertEqual(server.get_alpn_proto_negotiated(), b'spdy/2')
-            self.assertEqual(client.get_alpn_proto_negotiated(), b'spdy/2')
+            assert server.get_alpn_proto_negotiated() == b'spdy/2'
+            assert client.get_alpn_proto_negotiated() == b'spdy/2'
 
         def test_alpn_set_on_connection(self):
             """
@@ -1931,12 +1931,12 @@
             client.set_alpn_protos([b'http/1.1', b'spdy/2'])
             client.set_connect_state()
 
-            self._interactInMemory(server, client)
+            interact_in_memory(server, client)
 
-            self.assertEqual([(server, [b'http/1.1', b'spdy/2'])], select_args)
+            assert select_args == [(server, [b'http/1.1', b'spdy/2'])]
 
-            self.assertEqual(server.get_alpn_proto_negotiated(), b'spdy/2')
-            self.assertEqual(client.get_alpn_proto_negotiated(), b'spdy/2')
+            assert server.get_alpn_proto_negotiated() == b'spdy/2'
+            assert client.get_alpn_proto_negotiated() == b'spdy/2'
 
         def test_alpn_server_fail(self):
             """
@@ -1969,9 +1969,10 @@
             client.set_connect_state()
 
             # If the client doesn't return anything, the connection will fail.
-            self.assertRaises(Error, self._interactInMemory, server, client)
+            with pytest.raises(Error):
+                interact_in_memory(server, client)
 
-            self.assertEqual([(server, [b'http/1.1', b'spdy/2'])], select_args)
+            assert select_args == [(server, [b'http/1.1', b'spdy/2'])]
 
         def test_alpn_no_server(self):
             """
@@ -1997,9 +1998,9 @@
             client.set_connect_state()
 
             # Do the dance.
-            self._interactInMemory(server, client)
+            interact_in_memory(server, client)
 
-            self.assertEqual(client.get_alpn_proto_negotiated(), b'')
+            assert client.get_alpn_proto_negotiated() == b''
 
         def test_alpn_callback_exception(self):
             """
@@ -2030,10 +2031,9 @@
             client = Connection(client_context, None)
             client.set_connect_state()
 
-            self.assertRaises(
-                TypeError, self._interactInMemory, server, client
-            )
-            self.assertEqual([(server, [b'http/1.1', b'spdy/2'])], select_args)
+            with pytest.raises(TypeError):
+                interact_in_memory(server, client)
+            assert select_args == [(server, [b'http/1.1', b'spdy/2'])]
 
     else:
         # No ALPN.
@@ -2043,21 +2043,18 @@
             """
             # Test the context methods first.
             context = Context(TLSv1_METHOD)
-            self.assertRaises(
-                NotImplementedError, context.set_alpn_protos, None
-            )
-            self.assertRaises(
-                NotImplementedError, context.set_alpn_select_callback, None
-            )
+            with pytest.raises(NotImplementedError):
+                context.set_alpn_protos(None)
+            with pytest.raises(NotImplementedError):
+                context.set_alpn_select_callback(None)
 
             # Now test a connection.
             conn = Connection(context)
-            self.assertRaises(
-                NotImplementedError, conn.set_alpn_protos, None
-            )
+            with pytest.raises(NotImplementedError):
+                conn.set_alpn_protos(None)
 
 
-class SessionTests(TestCase):
+class TestSession(object):
     """
     Unit tests for :py:obj:`OpenSSL.SSL.Session`.
     """
@@ -2067,16 +2064,7 @@
         a new instance of that type.
         """
         new_session = Session()
-        self.assertTrue(isinstance(new_session, Session))
-
-    def test_construction_wrong_args(self):
-        """
-        If any arguments are passed to :py:class:`Session`, :py:obj:`TypeError`
-        is raised.
-        """
-        self.assertRaises(TypeError, Session, 123)
-        self.assertRaises(TypeError, Session, "hello")
-        self.assertRaises(TypeError, Session, object())
+        assert isinstance(new_session, Session)
 
 
 class ConnectionTests(TestCase, _LoopbackMixin):