eris/worker_test.py

49 lines
1.2 KiB
Python
Raw Normal View History

2016-01-21 23:22:42 +00:00
#!/usr/bin/env python3
2017-02-05 18:29:09 +01:00
# Copyright (C) 2017 Andrew Hamilton. All rights reserved.
2016-01-21 23:22:42 +00:00
# Licensed under the Artistic License 2.0.
import asyncio
2016-01-21 23:22:42 +00:00
import os
import shutil
import tempfile
import unittest
import tools
import worker
2016-01-21 23:22:42 +00:00
class WorkerTestCase(unittest.TestCase):
def setUp(self):
self.temp_dir = tempfile.mkdtemp()
self.original_working_dir = os.getcwd()
os.chdir(self.temp_dir)
2016-02-24 01:45:31 +00:00
os.mkdir(tools.CACHE_PATH)
2016-01-21 23:22:42 +00:00
open("foo", "w").close()
def tearDown(self):
shutil.rmtree(self.temp_dir)
os.chdir(self.original_working_dir)
def _test_worker(self, is_sandboxed):
loop = asyncio.get_event_loop()
worker_ = worker.Worker(is_sandboxed, False, False)
loop.run_until_complete(worker_.create_process())
future = worker_.run_tool("foo", tools.metadata)
status = loop.run_until_complete(future)
self.assertEqual(status, tools.Status.normal)
2016-02-24 01:45:31 +00:00
result_path = os.path.join(tools.CACHE_PATH, "foo-metadata")
2016-01-21 23:22:42 +00:00
self.assertTrue(os.path.exists(result_path))
def test_run_job_without_sandbox(self):
self._test_worker(False)
2016-01-21 23:22:42 +00:00
def test_run_job_with_sandbox(self):
self._test_worker(True)
2016-01-21 23:22:42 +00:00
if __name__ == "__main__":
unittest.main()