Tests: options moved to the separate class.

This change is necessary to separate the logic
and prevent possible circular dependency.
This commit is contained in:
Andrei Zeliankou
2020-12-06 16:01:59 +00:00
parent 55296e6ff2
commit 07789a23e9
39 changed files with 62 additions and 41 deletions

View File

@@ -17,6 +17,7 @@ import pytest
from unit.check.go import check_go from unit.check.go import check_go
from unit.check.node import check_node from unit.check.node import check_node
from unit.check.tls import check_openssl from unit.check.tls import check_openssl
from unit.option import option
def pytest_addoption(parser): def pytest_addoption(parser):
@@ -48,12 +49,14 @@ def pytest_addoption(parser):
unit_instance = {} unit_instance = {}
_processes = [] _processes = []
option = None
def pytest_configure(config): def pytest_configure(config):
global option option.config = config.option
option = config.option
option.detailed = config.option.detailed
option.print_log = config.option.print_log
option.save_log = config.option.save_log
option.unsafe = config.option.unsafe
option.generated_tests = {} option.generated_tests = {}
option.current_dir = os.path.abspath( option.current_dir = os.path.abspath(
@@ -162,6 +165,8 @@ def pytest_sessionstart(session):
unit_stop() unit_stop()
_check_alerts()
shutil.rmtree(unit_instance['temp_dir']) shutil.rmtree(unit_instance['temp_dir'])

View File

@@ -2,9 +2,9 @@ import time
import pytest import pytest
from conftest import option
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestAccessLog(TestApplicationPython): class TestAccessLog(TestApplicationPython):

View File

@@ -4,9 +4,9 @@ from distutils.version import LooseVersion
import pytest import pytest
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestASGIApplication(TestApplicationPython): class TestASGIApplication(TestApplicationPython):

View File

@@ -3,10 +3,10 @@ from distutils.version import LooseVersion
import pytest import pytest
from conftest import option
from conftest import public_dir from conftest import public_dir
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestASGILifespan(TestApplicationPython): class TestASGILifespan(TestApplicationPython):

View File

@@ -4,10 +4,10 @@ from distutils.version import LooseVersion
import pytest import pytest
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.applications.websockets import TestApplicationWebsocket from unit.applications.websockets import TestApplicationWebsocket
from unit.option import option
class TestASGIWebsockets(TestApplicationPython): class TestASGIWebsockets(TestApplicationPython):

View File

@@ -5,11 +5,11 @@ import shutil
import pytest import pytest
from conftest import option
from conftest import unit_run from conftest import unit_run
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.go import TestApplicationGo from unit.applications.lang.go import TestApplicationGo
from unit.feature.isolation import TestFeatureIsolation from unit.feature.isolation import TestFeatureIsolation
from unit.option import option
class TestGoIsolation(TestApplicationGo): class TestGoIsolation(TestApplicationGo):
prerequisites = {'modules': {'go': 'any'}, 'features': ['isolation']} prerequisites = {'modules': {'go': 'any'}, 'features': ['isolation']}

View File

@@ -3,10 +3,10 @@ import os
import re import re
import time import time
from conftest import option
from conftest import public_dir from conftest import public_dir
from conftest import skip_alert from conftest import skip_alert
from unit.applications.lang.java import TestApplicationJava from unit.applications.lang.java import TestApplicationJava
from unit.option import option
class TestJavaApplication(TestApplicationJava): class TestJavaApplication(TestApplicationJava):
prerequisites = {'modules': {'java': 'all'}} prerequisites = {'modules': {'java': 'all'}}

View File

@@ -3,8 +3,8 @@ import subprocess
import pytest import pytest
from conftest import option
from unit.applications.lang.java import TestApplicationJava from unit.applications.lang.java import TestApplicationJava
from unit.option import option
class TestJavaIsolationRootfs(TestApplicationJava): class TestJavaIsolationRootfs(TestApplicationJava):

View File

@@ -3,10 +3,10 @@ import time
import pytest import pytest
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.lang.java import TestApplicationJava from unit.applications.lang.java import TestApplicationJava
from unit.applications.websockets import TestApplicationWebsocket from unit.applications.websockets import TestApplicationWebsocket
from unit.option import option
class TestJavaWebsockets(TestApplicationJava): class TestJavaWebsockets(TestApplicationJava):

View File

@@ -3,10 +3,10 @@ import time
import pytest import pytest
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.lang.node import TestApplicationNode from unit.applications.lang.node import TestApplicationNode
from unit.applications.websockets import TestApplicationWebsocket from unit.applications.websockets import TestApplicationWebsocket
from unit.option import option
class TestNodeWebsockets(TestApplicationNode): class TestNodeWebsockets(TestApplicationNode):

View File

@@ -5,9 +5,9 @@ import time
import pytest import pytest
from conftest import option
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.php import TestApplicationPHP from unit.applications.lang.php import TestApplicationPHP
from unit.option import option
class TestPHPApplication(TestApplicationPHP): class TestPHPApplication(TestApplicationPHP):
prerequisites = {'modules': {'php': 'all'}} prerequisites = {'modules': {'php': 'all'}}

View File

@@ -2,11 +2,11 @@ import shutil
import pytest import pytest
from conftest import option
from conftest import unit_run from conftest import unit_run
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.php import TestApplicationPHP from unit.applications.lang.php import TestApplicationPHP
from unit.feature.isolation import TestFeatureIsolation from unit.feature.isolation import TestFeatureIsolation
from unit.option import option
class TestPHPIsolation(TestApplicationPHP): class TestPHPIsolation(TestApplicationPHP):

View File

@@ -1,5 +1,5 @@
from conftest import option
from unit.applications.lang.php import TestApplicationPHP from unit.applications.lang.php import TestApplicationPHP
from unit.option import option
class TestPHPTargets(TestApplicationPHP): class TestPHPTargets(TestApplicationPHP):

View File

@@ -4,11 +4,11 @@ import time
import pytest import pytest
from conftest import option
from conftest import run_process from conftest import run_process
from conftest import skip_alert from conftest import skip_alert
from conftest import waitforsocket from conftest import waitforsocket
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestProxy(TestApplicationPython): class TestProxy(TestApplicationPython):

View File

@@ -3,10 +3,10 @@ import select
import socket import socket
import time import time
from conftest import option
from conftest import run_process from conftest import run_process
from conftest import waitforsocket from conftest import waitforsocket
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestProxyChunked(TestApplicationPython): class TestProxyChunked(TestApplicationPython):

View File

@@ -5,10 +5,10 @@ import time
import pytest import pytest
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestPythonApplication(TestApplicationPython): class TestPythonApplication(TestApplicationPython):

View File

@@ -2,11 +2,11 @@ import shutil
import pytest import pytest
from conftest import option
from conftest import unit_run from conftest import unit_run
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.feature.isolation import TestFeatureIsolation from unit.feature.isolation import TestFeatureIsolation
from unit.option import option
class TestPythonIsolation(TestApplicationPython): class TestPythonIsolation(TestApplicationPython):

View File

@@ -4,8 +4,8 @@ import time
import pytest import pytest
from conftest import option
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestPythonProcman(TestApplicationPython): class TestPythonProcman(TestApplicationPython):

View File

@@ -2,9 +2,9 @@ import re
import subprocess import subprocess
import time import time
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestRespawn(TestApplicationPython): class TestRespawn(TestApplicationPython):

View File

@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import pytest import pytest
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestRouting(TestApplicationProto): class TestRouting(TestApplicationProto):

View File

@@ -2,11 +2,11 @@ import shutil
import pytest import pytest
from conftest import option
from conftest import unit_run from conftest import unit_run
from conftest import unit_stop from conftest import unit_stop
from unit.applications.lang.ruby import TestApplicationRuby from unit.applications.lang.ruby import TestApplicationRuby
from unit.feature.isolation import TestFeatureIsolation from unit.feature.isolation import TestFeatureIsolation
from unit.option import option
class TestRubyIsolation(TestApplicationRuby): class TestRubyIsolation(TestApplicationRuby):

View File

@@ -1,8 +1,8 @@
import os import os
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestStatic(TestApplicationProto): class TestStatic(TestApplicationProto):

View File

@@ -3,9 +3,9 @@ import socket
import pytest import pytest
from conftest import option
from conftest import waitforfiles from conftest import waitforfiles
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestStatic(TestApplicationProto): class TestStatic(TestApplicationProto):

View File

@@ -5,9 +5,9 @@ import subprocess
import pytest import pytest
from conftest import option
from conftest import skip_alert from conftest import skip_alert
from unit.applications.tls import TestApplicationTLS from unit.applications.tls import TestApplicationTLS
from unit.option import option
class TestTLS(TestApplicationTLS): class TestTLS(TestApplicationTLS):

View File

@@ -1,8 +1,8 @@
import os import os
import re import re
from conftest import option
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option
class TestUpstreamsRR(TestApplicationPython): class TestUpstreamsRR(TestApplicationPython):

View File

@@ -1,8 +1,8 @@
import os import os
import subprocess import subprocess
from conftest import option
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationGo(TestApplicationProto): class TestApplicationGo(TestApplicationProto):

View File

@@ -4,8 +4,8 @@ import shutil
import subprocess import subprocess
import pytest import pytest
from conftest import option
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationJava(TestApplicationProto): class TestApplicationJava(TestApplicationProto):

View File

@@ -1,9 +1,9 @@
import shutil import shutil
from urllib.parse import quote from urllib.parse import quote
from conftest import option
from conftest import public_dir from conftest import public_dir
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationNode(TestApplicationProto): class TestApplicationNode(TestApplicationProto):

View File

@@ -1,5 +1,5 @@
from conftest import option
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationPerl(TestApplicationProto): class TestApplicationPerl(TestApplicationProto):

View File

@@ -1,8 +1,8 @@
from conftest import option
import os import os
import shutil import shutil
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationPHP(TestApplicationProto): class TestApplicationPHP(TestApplicationProto):

View File

@@ -3,8 +3,8 @@ import shutil
from urllib.parse import quote from urllib.parse import quote
import pytest import pytest
from conftest import option
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationPython(TestApplicationProto): class TestApplicationPython(TestApplicationProto):

View File

@@ -1,5 +1,5 @@
from conftest import option
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationRuby(TestApplicationProto): class TestApplicationRuby(TestApplicationProto):

View File

@@ -2,8 +2,8 @@ import os
import re import re
import time import time
from conftest import option
from unit.control import TestControl from unit.control import TestControl
from unit.option import option
class TestApplicationProto(TestControl): class TestApplicationProto(TestControl):

View File

@@ -2,8 +2,8 @@ import os
import ssl import ssl
import subprocess import subprocess
from conftest import option
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option
class TestApplicationTLS(TestApplicationProto): class TestApplicationTLS(TestApplicationProto):

View File

@@ -1,7 +1,7 @@
import json import json
from conftest import option
from unit.http import TestHTTP from unit.http import TestHTTP
from unit.option import option
def args_handler(conf_func): def args_handler(conf_func):

View File

@@ -4,7 +4,7 @@ from unit.applications.lang.go import TestApplicationGo
from unit.applications.lang.java import TestApplicationJava from unit.applications.lang.java import TestApplicationJava
from unit.applications.lang.node import TestApplicationNode from unit.applications.lang.node import TestApplicationNode
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from conftest import option from unit.option import option
class TestFeatureIsolation(TestApplicationProto): class TestFeatureIsolation(TestApplicationProto):

View File

@@ -7,8 +7,8 @@ import select
import socket import socket
import pytest import pytest
from conftest import option
from unit.main import TestUnit from unit.main import TestUnit
from unit.option import option
class TestHTTP(TestUnit): class TestHTTP(TestUnit):

View File

@@ -1,5 +1,5 @@
import pytest import pytest
from conftest import option from unit.option import option
class TestUnit(): class TestUnit():

16
test/unit/option.py Normal file
View File

@@ -0,0 +1,16 @@
class Options():
_options = {
'skip_alerts': [],
'skip_sanitizer': False,
}
def __setattr__(self, name, value):
Options._options[name] = value
def __getattr__(self, name):
if name in Options._options:
return Options._options[name]
raise AttributeError
option = Options()