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,
}
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)
assert 'success' in self.conf(

View file

@ -1,12 +1,26 @@
import os
import shutil
from unit.applications.proto import TestApplicationProto
from unit.option import option
from unit.utils import public_dir
class TestApplicationRuby(TestApplicationProto):
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):
script_path = option.test_dir + '/ruby/' + script
self.prepare_env(script)
script_path = option.temp_dir + '/ruby/' + script
self._load_conf(
{

View file

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