Tests: run Ruby applications inside temporary directory.

This commit is contained in:
Oisin Canty
2021-07-02 13:00:04 +00:00
parent 655e321075
commit 6c14d5d7b1
3 changed files with 20 additions and 10 deletions

View File

@@ -35,13 +35,6 @@ class TestRubyIsolation(TestApplicationRuby):
'pid': True, 'pid': True,
} }
os.mkdir(option.temp_dir + '/ruby')
shutil.copytree(
option.test_dir + '/ruby/status_int',
option.temp_dir + '/ruby/status_int',
)
self.load('status_int', isolation=isolation) self.load('status_int', isolation=isolation)
assert 'success' in self.conf( assert 'success' in self.conf(

View File

@@ -1,12 +1,26 @@
import os
import shutil
from unit.applications.proto import TestApplicationProto from unit.applications.proto import TestApplicationProto
from unit.option import option from unit.option import option
from unit.utils import public_dir
class TestApplicationRuby(TestApplicationProto): class TestApplicationRuby(TestApplicationProto):
application_type = "ruby" application_type = "ruby"
def prepare_env(self, script):
shutil.copytree(
option.test_dir + '/ruby/' + script,
option.temp_dir + '/ruby/' + script
)
public_dir(option.temp_dir + '/ruby/' + script)
def load(self, script, name='config.ru', **kwargs): def load(self, script, name='config.ru', **kwargs):
script_path = option.test_dir + '/ruby/' + script self.prepare_env(script)
script_path = option.temp_dir + '/ruby/' + script
self._load_conf( self._load_conf(
{ {

View File

@@ -3,6 +3,7 @@ import os
from unit.applications.lang.go import TestApplicationGo 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.ruby import TestApplicationRuby
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 unit.http import TestHTTP from unit.http import TestHTTP
@@ -65,14 +66,16 @@ def check_isolation():
} }
elif 'ruby' in available['modules']: elif 'ruby' in available['modules']:
TestApplicationRuby().prepare_env('empty')
conf = { conf = {
"listeners": {"*:7080": {"pass": "applications/empty"}}, "listeners": {"*:7080": {"pass": "applications/empty"}},
"applications": { "applications": {
"empty": { "empty": {
"type": "ruby", "type": "ruby",
"processes": {"spare": 0}, "processes": {"spare": 0},
"working_directory": option.test_dir + "/ruby/empty", "working_directory": option.temp_dir + "/ruby/empty",
"script": option.test_dir + "/ruby/empty/config.ru", "script": option.temp_dir + "/ruby/empty/config.ru",
"isolation": {"namespaces": {"credential": True}}, "isolation": {"namespaces": {"credential": True}},
} }
}, },