~myers-1/pyopenssl/npn

« back to all changes in this revision

Viewing changes to OpenSSL/test/test_ssl.py

  • Committer: Jean-Paul Calderone
  • Date: 2011-09-08 22:44:31 UTC
  • mfrom: (156.2.7 ctx_set_mode)
  • Revision ID: exarkun@divmod.com-20110908224431-9hxcmjzfhzqyglxh
Add Context.set_mode, MODE_RELEASE_BUFFERS, and OP_NO_COMPRESSION

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
from OpenSSL.SSL import OP_NO_SSLv2, OP_NO_SSLv3, OP_SINGLE_DH_USE
27
27
from OpenSSL.SSL import (
28
28
    VERIFY_PEER, VERIFY_FAIL_IF_NO_PEER_CERT, VERIFY_CLIENT_ONCE, VERIFY_NONE)
 
29
 
29
30
from OpenSSL.SSL import (
30
31
    Error, SysCallError, WantReadError, ZeroReturnError, SSLeay_version)
31
32
from OpenSSL.SSL import Context, ContextType, Connection, ConnectionType
50
51
except ImportError:
51
52
    OP_NO_TICKET = None
52
53
 
 
54
try:
 
55
    from OpenSSL.SSL import OP_NO_COMPRESSION
 
56
except ImportError:
 
57
    OP_NO_COMPRESSION = None
 
58
 
 
59
try:
 
60
    from OpenSSL.SSL import MODE_RELEASE_BUFFERS
 
61
except ImportError:
 
62
    MODE_RELEASE_BUFFERS = None
 
63
 
53
64
from OpenSSL.SSL import (
54
65
    SSL_ST_CONNECT, SSL_ST_ACCEPT, SSL_ST_MASK, SSL_ST_INIT, SSL_ST_BEFORE,
55
66
    SSL_ST_OK, SSL_ST_RENEGOTIATE,
352
363
        self.assertRaises(TypeError, context.set_options, 1, None)
353
364
 
354
365
 
 
366
    def test_set_mode_wrong_args(self):
 
367
        """
 
368
        L{Context.set_mode} raises L{TypeError} if called with the wrong
 
369
        number of arguments or a non-C{int} argument.
 
370
        """
 
371
        context = Context(TLSv1_METHOD)
 
372
        self.assertRaises(TypeError, context.set_mode)
 
373
        self.assertRaises(TypeError, context.set_mode, None)
 
374
        self.assertRaises(TypeError, context.set_mode, 1, None)
 
375
 
 
376
 
 
377
    if MODE_RELEASE_BUFFERS is not None:
 
378
        def test_set_mode(self):
 
379
            """
 
380
            L{Context.set_mode} accepts a mode bitvector and returns the newly
 
381
            set mode.
 
382
            """
 
383
            context = Context(TLSv1_METHOD)
 
384
            self.assertTrue(
 
385
                MODE_RELEASE_BUFFERS & context.set_mode(MODE_RELEASE_BUFFERS))
 
386
    else:
 
387
        "MODE_RELEASE_BUFFERS unavailable - OpenSSL version may be too old"
 
388
 
 
389
 
355
390
    def test_set_timeout_wrong_args(self):
356
391
        """
357
392
        L{Context.set_timeout} raises L{TypeError} if called with the wrong
1581
1616
        "OP_NO_TICKET unavailable - OpenSSL version may be too old"
1582
1617
 
1583
1618
 
 
1619
    if OP_NO_COMPRESSION is not None:
 
1620
        def test_op_no_compression(self):
 
1621
            """
 
1622
            The value of L{OpenSSL.SSL.OP_NO_COMPRESSION} is 0x20000, the value
 
1623
            of L{SSL_OP_NO_COMPRESSION} defined by I{openssl/ssl.h}.
 
1624
            """
 
1625
            self.assertEqual(OP_NO_COMPRESSION, 0x20000)
 
1626
    else:
 
1627
        "OP_NO_COMPRESSION unavailable - OpenSSL version may be too old"
 
1628
 
 
1629
 
1584
1630
 
1585
1631
class MemoryBIOTests(TestCase, _LoopbackMixin):
1586
1632
    """