Tests: improving get_application_type() and fixing its name.
This patch also enables multiversion tests running for Java.
This commit is contained in:
@@ -75,7 +75,9 @@ def skip_alert(*alerts):
|
|||||||
|
|
||||||
def pytest_generate_tests(metafunc):
|
def pytest_generate_tests(metafunc):
|
||||||
cls = metafunc.cls
|
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
|
return
|
||||||
|
|
||||||
type = cls.application_type
|
type = cls.application_type
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ from unit.applications.proto import TestApplicationProto
|
|||||||
|
|
||||||
|
|
||||||
class TestApplicationJava(TestApplicationProto):
|
class TestApplicationJava(TestApplicationProto):
|
||||||
|
application_type = "java"
|
||||||
|
|
||||||
def prepare_env(self, script):
|
def prepare_env(self, script):
|
||||||
app_path = option.temp_dir + '/java'
|
app_path = option.temp_dir + '/java'
|
||||||
web_inf_path = app_path + '/WEB-INF/'
|
web_inf_path = app_path + '/WEB-INF/'
|
||||||
@@ -84,7 +86,7 @@ class TestApplicationJava(TestApplicationProto):
|
|||||||
"applications": {
|
"applications": {
|
||||||
script: {
|
script: {
|
||||||
"unit_jars": option.current_dir + '/build',
|
"unit_jars": option.current_dir + '/build',
|
||||||
"type": 'java',
|
"type": self.get_application_type(),
|
||||||
"processes": {"spare": 0},
|
"processes": {"spare": 0},
|
||||||
"working_directory": option.test_dir
|
"working_directory": option.test_dir
|
||||||
+ '/java/'
|
+ '/java/'
|
||||||
|
|||||||
@@ -7,17 +7,13 @@ class TestApplicationPerl(TestApplicationProto):
|
|||||||
|
|
||||||
def load(self, script, name='psgi.pl', **kwargs):
|
def load(self, script, name='psgi.pl', **kwargs):
|
||||||
script_path = option.test_dir + '/perl/' + script
|
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(
|
self._load_conf(
|
||||||
{
|
{
|
||||||
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
||||||
"applications": {
|
"applications": {
|
||||||
script: {
|
script: {
|
||||||
"type": appication_type,
|
"type": self.get_application_type(),
|
||||||
"processes": {"spare": 0},
|
"processes": {"spare": 0},
|
||||||
"working_directory": script_path,
|
"working_directory": script_path,
|
||||||
"script": script_path + '/' + name,
|
"script": script_path + '/' + name,
|
||||||
|
|||||||
@@ -7,17 +7,13 @@ class TestApplicationPHP(TestApplicationProto):
|
|||||||
|
|
||||||
def load(self, script, index='index.php', **kwargs):
|
def load(self, script, index='index.php', **kwargs):
|
||||||
script_path = option.test_dir + '/php/' + script
|
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(
|
self._load_conf(
|
||||||
{
|
{
|
||||||
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
||||||
"applications": {
|
"applications": {
|
||||||
script: {
|
script: {
|
||||||
"type": appication_type,
|
"type": self.get_application_type(),
|
||||||
"processes": {"spare": 0},
|
"processes": {"spare": 0},
|
||||||
"root": script_path,
|
"root": script_path,
|
||||||
"working_directory": script_path,
|
"working_directory": script_path,
|
||||||
|
|||||||
@@ -34,11 +34,6 @@ class TestApplicationPython(TestApplicationProto):
|
|||||||
|
|
||||||
script_path = '/app/python/' + name
|
script_path = '/app/python/' + name
|
||||||
|
|
||||||
appication_type = self.get_appication_type()
|
|
||||||
|
|
||||||
if appication_type is None:
|
|
||||||
appication_type = self.application_type
|
|
||||||
|
|
||||||
self._load_conf(
|
self._load_conf(
|
||||||
{
|
{
|
||||||
"listeners": {
|
"listeners": {
|
||||||
@@ -46,7 +41,7 @@ class TestApplicationPython(TestApplicationProto):
|
|||||||
},
|
},
|
||||||
"applications": {
|
"applications": {
|
||||||
name: {
|
name: {
|
||||||
"type": appication_type,
|
"type": self.get_application_type(),
|
||||||
"processes": {"spare": 0},
|
"processes": {"spare": 0},
|
||||||
"path": script_path,
|
"path": script_path,
|
||||||
"working_directory": script_path,
|
"working_directory": script_path,
|
||||||
|
|||||||
@@ -7,17 +7,13 @@ class TestApplicationRuby(TestApplicationProto):
|
|||||||
|
|
||||||
def load(self, script, name='config.ru', **kwargs):
|
def load(self, script, name='config.ru', **kwargs):
|
||||||
script_path = option.test_dir + '/ruby/' + script
|
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(
|
self._load_conf(
|
||||||
{
|
{
|
||||||
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
||||||
"applications": {
|
"applications": {
|
||||||
script: {
|
script: {
|
||||||
"type": appication_type,
|
"type": self.get_application_type(),
|
||||||
"processes": {"spare": 0},
|
"processes": {"spare": 0},
|
||||||
"working_directory": script_path,
|
"working_directory": script_path,
|
||||||
"script": script_path + '/' + name,
|
"script": script_path + '/' + name,
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ from unit.control import TestControl
|
|||||||
|
|
||||||
|
|
||||||
class TestApplicationProto(TestControl):
|
class TestApplicationProto(TestControl):
|
||||||
|
application_type = None
|
||||||
|
|
||||||
def sec_epoch(self):
|
def sec_epoch(self):
|
||||||
return time.mktime(time.gmtime())
|
return time.mktime(time.gmtime())
|
||||||
|
|
||||||
@@ -28,15 +30,12 @@ class TestApplicationProto(TestControl):
|
|||||||
|
|
||||||
return found
|
return found
|
||||||
|
|
||||||
def get_appication_type(self):
|
def get_application_type(self):
|
||||||
current_test = (
|
current_test = (
|
||||||
os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
|
os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]
|
||||||
)
|
)
|
||||||
|
|
||||||
if current_test in option.generated_tests:
|
return option.generated_tests.get(current_test, self.application_type)
|
||||||
return option.generated_tests[current_test]
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
def _load_conf(self, conf, **kwargs):
|
def _load_conf(self, conf, **kwargs):
|
||||||
if 'applications' in conf:
|
if 'applications' in conf:
|
||||||
|
|||||||
Reference in New Issue
Block a user