Tests: improving get_application_type() and fixing its name.

This patch also enables multiversion tests running for Java.
This commit is contained in:
Max Romanov
2020-10-28 00:01:46 +03:00
parent f007ad4dcf
commit 6a00bab41e
7 changed files with 14 additions and 28 deletions

View File

@@ -75,7 +75,9 @@ def skip_alert(*alerts):
def pytest_generate_tests(metafunc):
cls = metafunc.cls
if not hasattr(cls, 'application_type'):
if (not hasattr(cls, 'application_type')
or cls.application_type == None
or cls.application_type == 'external'):
return
type = cls.application_type

View File

@@ -9,6 +9,8 @@ from unit.applications.proto import TestApplicationProto
class TestApplicationJava(TestApplicationProto):
application_type = "java"
def prepare_env(self, script):
app_path = option.temp_dir + '/java'
web_inf_path = app_path + '/WEB-INF/'
@@ -84,7 +86,7 @@ class TestApplicationJava(TestApplicationProto):
"applications": {
script: {
"unit_jars": option.current_dir + '/build',
"type": 'java',
"type": self.get_application_type(),
"processes": {"spare": 0},
"working_directory": option.test_dir
+ '/java/'

View File

@@ -7,17 +7,13 @@ class TestApplicationPerl(TestApplicationProto):
def load(self, script, name='psgi.pl', **kwargs):
script_path = option.test_dir + '/perl/' + script
appication_type = self.get_appication_type()
if appication_type is None:
appication_type = self.application_type
self._load_conf(
{
"listeners": {"*:7080": {"pass": "applications/" + script}},
"applications": {
script: {
"type": appication_type,
"type": self.get_application_type(),
"processes": {"spare": 0},
"working_directory": script_path,
"script": script_path + '/' + name,

View File

@@ -7,17 +7,13 @@ class TestApplicationPHP(TestApplicationProto):
def load(self, script, index='index.php', **kwargs):
script_path = option.test_dir + '/php/' + script
appication_type = self.get_appication_type()
if appication_type is None:
appication_type = self.application_type
self._load_conf(
{
"listeners": {"*:7080": {"pass": "applications/" + script}},
"applications": {
script: {
"type": appication_type,
"type": self.get_application_type(),
"processes": {"spare": 0},
"root": script_path,
"working_directory": script_path,

View File

@@ -34,11 +34,6 @@ class TestApplicationPython(TestApplicationProto):
script_path = '/app/python/' + name
appication_type = self.get_appication_type()
if appication_type is None:
appication_type = self.application_type
self._load_conf(
{
"listeners": {
@@ -46,7 +41,7 @@ class TestApplicationPython(TestApplicationProto):
},
"applications": {
name: {
"type": appication_type,
"type": self.get_application_type(),
"processes": {"spare": 0},
"path": script_path,
"working_directory": script_path,

View File

@@ -7,17 +7,13 @@ class TestApplicationRuby(TestApplicationProto):
def load(self, script, name='config.ru', **kwargs):
script_path = option.test_dir + '/ruby/' + script
appication_type = self.get_appication_type()
if appication_type is None:
appication_type = self.application_type
self._load_conf(
{
"listeners": {"*:7080": {"pass": "applications/" + script}},
"applications": {
script: {
"type": appication_type,
"type": self.get_application_type(),
"processes": {"spare": 0},
"working_directory": script_path,
"script": script_path + '/' + name,

View File

@@ -7,6 +7,8 @@ from unit.control import TestControl
class TestApplicationProto(TestControl):
application_type = None
def sec_epoch(self):
return time.mktime(time.gmtime())
@@ -28,15 +30,12 @@ class TestApplicationProto(TestControl):
return found
def get_appication_type(self):
def get_application_type(self):
current_test = (
os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
)
if current_test in option.generated_tests:
return option.generated_tests[current_test]
return None
return option.generated_tests.get(current_test, self.application_type)
def _load_conf(self, conf, **kwargs):
if 'applications' in conf: