Exemple #1
0
    def test_ssl(self):
        def make_keys():
            from OpenSSL import crypto
            from socket import gethostname
            k = crypto.PKey()
            k.generate_key(crypto.TYPE_RSA, 1024)

            cert = crypto.X509()
            cert.get_subject().C = "KR"
            cert.get_subject().L = "LocalityName"
            cert.get_subject().O = "OrganizationName"
            cert.get_subject().OU = "OrganizationUnitName"
            cert.get_subject().CN = gethostname()
            cert.set_serial_number(12345)
            cert.gmtime_adj_notBefore(0)
            cert.gmtime_adj_notAfter(365*24*60*60)
            cert.set_issuer(cert.get_subject())
            cert.set_pubkey(k)
            cert.sign(k, 'sha1')
            open('ssl.crt', 'wt').write(
                crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
            open('ssl.key', 'wt').write(
                crypto.dump_privatekey(crypto.FILETYPE_PEM, k))

        def destroy_keys():
            os.remove('ssl.crt')
            os.remove('ssl.key')

        make_keys()
        bson.patch_socket()
        port = random.randint(2000, 65535)
        server = Server.run_server(
            ('127.0.0.1', port),
            app,
            keyfile='ssl.key',
            certfile='ssl.crt'
        )
        conn = socket(AF_INET, SOCK_STREAM)
        conn = ssl.wrap_socket(conn,
                               keyfile='ssl.key',
                               certfile='ssl.crt',
                               ssl_version=ssl.PROTOCOL_TLSv1)
        conn.connect(('127.0.0.1', port))
        conn.sendobj({'url': '/', 'method': 'GET'})
        obj = conn.recvobj()
        obj.pop('headers')
        self.assertEqual(
            obj,
            dict(status=dict(reason='OK', code='200'),
                 url='/',
                 method='GET',
                 response=dict())
        )
        server.stop()
        destroy_keys()
Exemple #2
0
 def test_command(self):
     bson.patch_socket()
     port = random.randint(2000, 65535)
     server = Server.run_server(('127.0.0.1', port), app)
     conn = socket(AF_INET, SOCK_STREAM)
     conn.connect(('127.0.0.1', port))
     conn.sendobj({'url': ':hello'})
     self.assertEqual(
         conn.recvobj(),
         dict(status=dict(reason='OK', code='200'), url=':hello'))
     server.stop()
Exemple #3
0
 def test_command(self):
     bson.patch_socket()
     port = random.randint(2000, 65535)
     server = Server.run_server(('127.0.0.1', port), app)
     conn = socket(AF_INET, SOCK_STREAM)
     conn.connect(('127.0.0.1', port))
     conn.sendobj({'url': ':hello'})
     self.assertEqual(
         conn.recvobj(),
         dict(status=dict(reason='OK', code='200'), url=':hello')
     )
     server.stop()
Exemple #4
0
    def test_ssl(self):
        def make_keys():
            from OpenSSL import crypto
            from socket import gethostname
            k = crypto.PKey()
            k.generate_key(crypto.TYPE_RSA, 1024)

            cert = crypto.X509()
            cert.get_subject().C = "KR"
            cert.get_subject().L = "LocalityName"
            cert.get_subject().O = "OrganizationName"
            cert.get_subject().OU = "OrganizationUnitName"
            cert.get_subject().CN = gethostname()
            cert.set_serial_number(12345)
            cert.gmtime_adj_notBefore(0)
            cert.gmtime_adj_notAfter(365 * 24 * 60 * 60)
            cert.set_issuer(cert.get_subject())
            cert.set_pubkey(k)
            cert.sign(k, 'sha1')
            open('ssl.crt',
                 'wt').write(crypto.dump_certificate(crypto.FILETYPE_PEM,
                                                     cert))
            open('ssl.key',
                 'wt').write(crypto.dump_privatekey(crypto.FILETYPE_PEM, k))

        def destroy_keys():
            os.remove('ssl.crt')
            os.remove('ssl.key')

        make_keys()
        bson.patch_socket()
        port = random.randint(2000, 65535)
        server = Server.run_server(('127.0.0.1', port),
                                   app,
                                   keyfile='ssl.key',
                                   certfile='ssl.crt')
        conn = socket(AF_INET, SOCK_STREAM)
        conn = ssl.wrap_socket(conn,
                               keyfile='ssl.key',
                               certfile='ssl.crt',
                               ssl_version=ssl.PROTOCOL_TLSv1)
        conn.connect(('127.0.0.1', port))
        conn.sendobj({'url': '/', 'method': 'GET'})
        obj = conn.recvobj()
        obj.pop('headers')
        self.assertEqual(
            obj,
            dict(status=dict(reason='OK', code='200'),
                 url='/',
                 method='GET',
                 response=dict()))
        server.stop()
        destroy_keys()
Exemple #5
0
 def test_server(self):
     bson.patch_socket()
     port = random.randint(2000, 65535)
     server = Server.run_server(('127.0.0.1', port), app)
     conn = socket(AF_INET, SOCK_STREAM)
     conn.connect(('127.0.0.1', port))
     conn.sendobj({'url': '/', 'method': 'GET'})
     obj = conn.recvobj()
     obj.pop('headers')
     self.assertEqual(
         obj,
         dict(status=dict(reason='OK', code='200'),
              url='/',
              response=dict(),
              method='GET'))
     server.stop()
Exemple #6
0
 def test_server(self):
     bson.patch_socket()
     port = random.randint(2000, 65535)
     server = Server.run_server(('127.0.0.1', port), app)
     conn = socket(AF_INET, SOCK_STREAM)
     conn.connect(('127.0.0.1', port))
     conn.sendobj({'url': '/', 'method': 'GET'})
     obj = conn.recvobj()
     obj.pop('headers')
     self.assertEqual(
         obj,
         dict(status=dict(reason='OK', code='200'),
              url='/',
              response=dict(),
              method='GET')
     )
     server.stop()