Tests: removed TestApplicationTLS.get_server_certificate().
distutils.version is replaced by packaging.version. Also minor style fixes.
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
import re
|
||||
import time
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
import pytest
|
||||
from packaging import version
|
||||
from unit.applications.lang.python import TestApplicationPython
|
||||
|
||||
|
||||
class TestASGIApplication(TestApplicationPython):
|
||||
prerequisites = {
|
||||
'modules': {'python': lambda v: LooseVersion(v) >= LooseVersion('3.5')}
|
||||
'modules': {
|
||||
'python': lambda v: version.parse(v) >= version.parse('3.5')
|
||||
}
|
||||
}
|
||||
load_module = 'asgi'
|
||||
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
import os
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
from conftest import unit_stop
|
||||
from packaging import version
|
||||
from unit.applications.lang.python import TestApplicationPython
|
||||
from unit.option import option
|
||||
|
||||
|
||||
class TestASGILifespan(TestApplicationPython):
|
||||
prerequisites = {
|
||||
'modules': {'python': lambda v: LooseVersion(v) >= LooseVersion('3.5')}
|
||||
'modules': {
|
||||
'python': lambda v: version.parse(v) >= version.parse('3.5')
|
||||
}
|
||||
}
|
||||
load_module = 'asgi'
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
import pytest
|
||||
from packaging import version
|
||||
from unit.applications.lang.python import TestApplicationPython
|
||||
from unit.option import option
|
||||
|
||||
|
||||
class TestASGITargets(TestApplicationPython):
|
||||
prerequisites = {
|
||||
'modules': {'python': lambda v: LooseVersion(v) >= LooseVersion('3.5')}
|
||||
'modules': {
|
||||
'python': lambda v: version.parse(v) >= version.parse('3.5')
|
||||
}
|
||||
}
|
||||
load_module = 'asgi'
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import struct
|
||||
import time
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
import pytest
|
||||
from packaging import version
|
||||
from unit.applications.lang.python import TestApplicationPython
|
||||
from unit.applications.websockets import TestApplicationWebsocket
|
||||
from unit.option import option
|
||||
@@ -10,7 +10,9 @@ from unit.option import option
|
||||
|
||||
class TestASGIWebsockets(TestApplicationPython):
|
||||
prerequisites = {
|
||||
'modules': {'python': lambda v: LooseVersion(v) >= LooseVersion('3.5')}
|
||||
'modules': {
|
||||
'python': lambda v: version.parse(v) >= version.parse('3.5')
|
||||
}
|
||||
}
|
||||
load_module = 'asgi'
|
||||
|
||||
|
||||
@@ -7,10 +7,14 @@ class TestClientIP(TestApplicationPython):
|
||||
def client_ip(self, options):
|
||||
assert 'success' in self.conf(
|
||||
{
|
||||
"127.0.0.1:7081":
|
||||
{"client_ip": options, "pass": "applications/client_ip"},
|
||||
"[::1]:7082":
|
||||
{"client_ip": options, "pass": "applications/client_ip"},
|
||||
"127.0.0.1:7081": {
|
||||
"client_ip": options,
|
||||
"pass": "applications/client_ip",
|
||||
},
|
||||
"[::1]:7082": {
|
||||
"client_ip": options,
|
||||
"pass": "applications/client_ip",
|
||||
},
|
||||
},
|
||||
'listeners',
|
||||
), 'listeners configure'
|
||||
@@ -48,9 +52,7 @@ class TestClientIP(TestApplicationPython):
|
||||
), 'ipv6 default 2'
|
||||
assert self.get_xff('1.1.1.1') == '1.1.1.1', 'replace'
|
||||
assert self.get_xff('blah') == '127.0.0.1', 'bad header 2'
|
||||
assert (
|
||||
self.get_xff('1.1.1.1', 'ipv6') == '::1'
|
||||
), 'bad source ipv6 2'
|
||||
assert self.get_xff('1.1.1.1', 'ipv6') == '::1', 'bad source ipv6 2'
|
||||
|
||||
self.client_ip({'header': 'X-Forwarded-For', 'source': '!127.0.0.1'})
|
||||
|
||||
@@ -118,10 +120,18 @@ class TestClientIP(TestApplicationPython):
|
||||
|
||||
def test_settings_client_ip_invalid(self):
|
||||
assert 'error' in self.conf(
|
||||
{"http": {"client_ip": {'header': 'X-Forwarded-For', 'source': []}}},
|
||||
{
|
||||
"http": {
|
||||
"client_ip": {'header': 'X-Forwarded-For', 'source': []}
|
||||
}
|
||||
},
|
||||
'settings',
|
||||
), 'empty array source'
|
||||
assert 'error' in self.conf(
|
||||
{"http":{"client_ip": {'header': 'X-Forwarded-For', 'source': 'a'}}},
|
||||
{
|
||||
"http": {
|
||||
"client_ip": {'header': 'X-Forwarded-For', 'source': 'a'}
|
||||
}
|
||||
},
|
||||
'settings',
|
||||
), 'empty source invalid'
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import re
|
||||
|
||||
import pytest
|
||||
|
||||
from unit.applications.lang.go import TestApplicationGo
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
from packaging import version
|
||||
from unit.applications.lang.node import TestApplicationNode
|
||||
from unit.applications.websockets import TestApplicationWebsocket
|
||||
|
||||
@@ -7,7 +6,7 @@ from unit.applications.websockets import TestApplicationWebsocket
|
||||
class TestNodeESModules(TestApplicationNode):
|
||||
prerequisites = {
|
||||
'modules': {
|
||||
'node': lambda v: LooseVersion(v) >= LooseVersion("14.16.0")
|
||||
'node': lambda v: version.parse(v) >= version.parse('14.16.0')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -103,10 +103,7 @@ class TestPerlApplication(TestApplicationPerl):
|
||||
def test_perl_application_input_buffered_read(self):
|
||||
self.load('input_buffered_read')
|
||||
|
||||
assert (
|
||||
self.post(body='012345')['body'] == '012345'
|
||||
), 'buffered read #1'
|
||||
|
||||
assert self.post(body='012345')['body'] == '012345', 'buffered read #1'
|
||||
assert (
|
||||
self.post(body='9876543210')['body'] == '9876543210'
|
||||
), 'buffered read #2'
|
||||
@@ -114,10 +111,7 @@ class TestPerlApplication(TestApplicationPerl):
|
||||
def test_perl_application_input_close(self):
|
||||
self.load('input_close')
|
||||
|
||||
assert (
|
||||
self.post(body='012345')['body'] == '012345'
|
||||
), 'input close #1'
|
||||
|
||||
assert self.post(body='012345')['body'] == '012345', 'input close #1'
|
||||
assert (
|
||||
self.post(body='9876543210')['body'] == '9876543210'
|
||||
), 'input close #2'
|
||||
|
||||
@@ -3,7 +3,8 @@ import shutil
|
||||
import socket
|
||||
|
||||
import pytest
|
||||
from conftest import unit_run, unit_stop
|
||||
from conftest import unit_run
|
||||
from conftest import unit_stop
|
||||
from unit.applications.proto import TestApplicationProto
|
||||
from unit.option import option
|
||||
from unit.utils import waitforfiles
|
||||
|
||||
@@ -82,7 +82,10 @@ class TestStaticFallback(TestApplicationProto):
|
||||
|
||||
def test_static_fallback_share(self, temp_dir):
|
||||
self.action_update(
|
||||
{"share": "/blah", "fallback": {"share": temp_dir + "/assets$uri"},}
|
||||
{
|
||||
"share": "/blah",
|
||||
"fallback": {"share": temp_dir + "/assets$uri"},
|
||||
}
|
||||
)
|
||||
|
||||
resp = self.get()
|
||||
|
||||
@@ -85,7 +85,10 @@ class TestStaticTypes(TestApplicationProto):
|
||||
|
||||
def test_static_types_regex(self, temp_dir):
|
||||
self.action_update(
|
||||
{"share": temp_dir + "/assets$uri", "types": ["~text/(html|plain)"]}
|
||||
{
|
||||
"share": temp_dir + "/assets$uri",
|
||||
"types": ["~text/(html|plain)"],
|
||||
}
|
||||
)
|
||||
assert self.get(url='/file.php')['status'] == 403, 'regex fail'
|
||||
self.check_body('/file.html', '.html')
|
||||
|
||||
@@ -175,11 +175,13 @@ basicConstraints = critical,CA:TRUE"""
|
||||
|
||||
self.add_tls()
|
||||
|
||||
cert_old = self.get_server_certificate()
|
||||
cert_old = ssl.get_server_certificate(('127.0.0.1', 7080))
|
||||
|
||||
self.certificate()
|
||||
|
||||
assert cert_old != self.get_server_certificate(), 'update certificate'
|
||||
assert cert_old != ssl.get_server_certificate(
|
||||
('127.0.0.1', 7080)
|
||||
), 'update certificate'
|
||||
|
||||
@pytest.mark.skip('not yet')
|
||||
def test_tls_certificate_key_incorrect(self):
|
||||
@@ -200,11 +202,13 @@ basicConstraints = critical,CA:TRUE"""
|
||||
|
||||
self.add_tls()
|
||||
|
||||
cert_old = self.get_server_certificate()
|
||||
cert_old = ssl.get_server_certificate(('127.0.0.1', 7080))
|
||||
|
||||
self.add_tls(cert='new')
|
||||
|
||||
assert cert_old != self.get_server_certificate(), 'change certificate'
|
||||
assert cert_old != ssl.get_server_certificate(
|
||||
('127.0.0.1', 7080)
|
||||
), 'change certificate'
|
||||
|
||||
def test_tls_certificate_key_rsa(self):
|
||||
self.load('empty')
|
||||
|
||||
@@ -103,20 +103,16 @@ class TestVariables(TestApplicationProto):
|
||||
def test_variables_empty(self):
|
||||
def update_pass(prefix):
|
||||
assert 'success' in self.conf(
|
||||
{
|
||||
"listeners": {
|
||||
"*:7080": {"pass": prefix + "/$method"},
|
||||
},
|
||||
},
|
||||
{"listeners": {"*:7080": {"pass": prefix + "/$method"}}},
|
||||
), 'variables empty'
|
||||
|
||||
update_pass("routes");
|
||||
update_pass("routes")
|
||||
assert self.get(url='/1')['status'] == 404
|
||||
|
||||
update_pass("upstreams");
|
||||
update_pass("upstreams")
|
||||
assert self.get(url='/2')['status'] == 404
|
||||
|
||||
update_pass("applications");
|
||||
update_pass("applications")
|
||||
assert self.get(url='/3')['status'] == 404
|
||||
|
||||
def test_variables_invalid(self):
|
||||
|
||||
@@ -52,21 +52,6 @@ class TestApplicationTLS(TestApplicationProto):
|
||||
def post_ssl(self, **kwargs):
|
||||
return self.post(wrapper=self.context.wrap_socket, **kwargs)
|
||||
|
||||
def get_server_certificate(self, addr=('127.0.0.1', 7080)):
|
||||
|
||||
ssl_list = dir(ssl)
|
||||
|
||||
if 'PROTOCOL_TLS' in ssl_list:
|
||||
ssl_version = ssl.PROTOCOL_TLS
|
||||
|
||||
elif 'PROTOCOL_TLSv1_2' in ssl_list:
|
||||
ssl_version = ssl.PROTOCOL_TLSv1_2
|
||||
|
||||
else:
|
||||
ssl_version = ssl.PROTOCOL_TLSv1_1
|
||||
|
||||
return ssl.get_server_certificate(addr, ssl_version=ssl_version)
|
||||
|
||||
def openssl_conf(self, rewrite=False, alt_names=[]):
|
||||
conf_path = option.temp_dir + '/openssl.conf'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user