summaryrefslogtreecommitdiffhomepage
path: root/test/unit/applications/lang/java.py
diff options
context:
space:
mode:
authorAndrey Zelenkov <zelenkov@nginx.com>2019-03-28 18:43:13 +0300
committerAndrey Zelenkov <zelenkov@nginx.com>2019-03-28 18:43:13 +0300
commit19eba1730a1ca839ed62a37f34c204f580d1b653 (patch)
treee9f54ca64fc7db66e33350826c76ef3814cfa4a0 /test/unit/applications/lang/java.py
parent06b9a11494561e309114266bfe3bb001352b596c (diff)
downloadunit-19eba1730a1ca839ed62a37f34c204f580d1b653.tar.gz
unit-19eba1730a1ca839ed62a37f34c204f580d1b653.tar.bz2
Tests: unit module refactoring.
Diffstat (limited to '')
-rw-r--r--test/unit/applications/lang/java.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/unit/applications/lang/java.py b/test/unit/applications/lang/java.py
new file mode 100644
index 00000000..91bfb9ec
--- /dev/null
+++ b/test/unit/applications/lang/java.py
@@ -0,0 +1,74 @@
+import os
+import shutil
+from subprocess import Popen
+from unit.applications.proto import TestApplicationProto
+
+
+class TestApplicationJava(TestApplicationProto):
+ def load(self, script, name='app'):
+
+ app_path = self.testdir + '/java'
+ web_inf_path = app_path + '/WEB-INF/'
+ classes_path = web_inf_path + 'classes/'
+
+ script_path = self.current_dir + '/java/' + script + '/'
+
+ if not os.path.isdir(app_path):
+ os.makedirs(app_path)
+
+ src = []
+
+ for f in os.listdir(script_path):
+ if f.endswith('.java'):
+ src.append(script_path + f)
+ continue
+
+ if f.startswith('.') or f == 'Makefile':
+ continue
+
+ if os.path.isdir(script_path + f):
+ if f == 'WEB-INF':
+ continue
+
+ shutil.copytree(script_path + f, app_path + '/' + f)
+ continue
+
+ if f == 'web.xml':
+ if not os.path.isdir(web_inf_path):
+ os.makedirs(web_inf_path)
+
+ shutil.copy2(script_path + f, web_inf_path)
+ else:
+ shutil.copy2(script_path + f, app_path)
+
+ if src:
+ if not os.path.isdir(classes_path):
+ os.makedirs(classes_path)
+
+ tomcat_jar = self.pardir + '/build/tomcat-servlet-api-9.0.13.jar'
+
+ javac = [
+ 'javac',
+ '-encoding', 'utf-8',
+ '-d', classes_path,
+ '-classpath', tomcat_jar,
+ ]
+ javac.extend(src)
+
+ process = Popen(javac)
+ process.communicate()
+
+ self.conf(
+ {
+ "listeners": {"*:7080": {"application": script}},
+ "applications": {
+ script: {
+ "unit_jars": self.pardir + '/build',
+ "type": "java",
+ "processes": {"spare": 0},
+ "working_directory": script_path,
+ "webapp": app_path,
+ }
+ },
+ }
+ )