Skip to content

Commit 5d7bc1f

Browse files
committed
Add kill_server test
1 parent 63fb899 commit 5d7bc1f

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

tika/tests/test_tika.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import os
2020
import unittest
2121
import tika.parser
22+
import tika.tika
2223

2324

2425
class CreateTest(unittest.TestCase):
@@ -54,6 +55,12 @@ def test_local_path(self):
5455
file = os.path.join(os.path.dirname(__file__), 'files', 'rwservlet.pdf')
5556
self.assertTrue(tika.parser.from_file(file))
5657

58+
def test_kill_server(self):
59+
"""parse some file then kills server"""
60+
file = os.path.join(os.path.dirname(__file__), 'files', 'rwservlet.pdf')
61+
with open(file, 'rb') as file_obj:
62+
tika.parser.from_file(file_obj)
63+
self.assertIsNone(tika.tika.killServer())
5764

5865
if __name__ == '__main__':
5966
unittest.main()

tika/tika.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ def make_content_disposition_header(fn):
190190
csvOutput = 0
191191

192192
# will be used later on to kill the process and free up ram
193-
TikaServerProcess = ""
193+
TikaServerProcess = False
194194

195195
class TikaException(Exception):
196196
pass
@@ -664,7 +664,6 @@ def startServer(tikaServerJar, java_path = TikaJava, java_args = TikaJavaArgs, s
664664
return False
665665

666666
# Run java with jar args
667-
# need to check if shell=true is really needed
668667
global TikaServerProcess
669668
TikaServerProcess = Popen(cmd_string, stdout=logFile, stderr=STDOUT, shell=True, preexec_fn=os.setsid)
670669

@@ -688,10 +687,11 @@ def startServer(tikaServerJar, java_path = TikaJava, java_args = TikaJavaArgs, s
688687
return True
689688

690689
def killServer():
691-
if(TikaServerProcess.pid > 1):
690+
if(TikaServerProcess):
692691
os.killpg(os.getpgid(TikaServerProcess.pid), signal.SIGTERM)
692+
time.sleep(1)
693693
else:
694-
log.error("Invalid server PID, won't kill")
694+
log.error("Server not running, or was already running before")
695695

696696
def toFilename(url):
697697
'''

0 commit comments

Comments
 (0)