diff --git a/JobRunner/callback_server.py b/JobRunner/callback_server.py index 995b9d6..b40c596 100644 --- a/JobRunner/callback_server.py +++ b/JobRunner/callback_server.py @@ -32,7 +32,7 @@ def start_callback_server(ip, port, out_queue, in_queue, token, bypass_token): app.config.update(conf) if os.environ.get("IN_CONTAINER"): ip = "0.0.0.0" - app.run(host=ip, port=port, debug=False, access_log=False) + app.run(host=ip, port=port, debug=False, access_log=False, motd=False) @app.route("/", methods=["GET", "POST"]) diff --git a/Makefile b/Makefile index 07b902b..21016a3 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ testimage: test: - nosetests -A "not online" -s -x -v --with-coverage --cover-package=JobRunner --cover-erase --cover-html --cover-html-dir=./test_coverage --nocapture --nologcapture . + nosetests -A "not online" -s -x -v --with-coverage --cover-package=JobRunner --cover-erase --cover-html --cover-html-dir=./test_coverage . clean: diff --git a/test/test_callback_server.py b/test/test_callback_server.py index 083f1e8..166d9c3 100644 --- a/test/test_callback_server.py +++ b/test/test_callback_server.py @@ -3,7 +3,7 @@ import json from queue import Queue from unittest.mock import patch -from pprint import pprint + _TOKEN = "bogus" @@ -39,7 +39,6 @@ def test_index_post(): assert "submit" in mess data = json.dumps({"method": "bogus._check_job", "params": [job_id]}) response = _post(data) - pprint(response) assert "result" in response.json assert response.json["result"][0]["finished"] is 0 diff --git a/test/test_dockerrunner.py b/test/test_dockerrunner.py index c0c5e92..a6ba08f 100644 --- a/test/test_dockerrunner.py +++ b/test/test_dockerrunner.py @@ -76,20 +76,20 @@ def test_sort(self): serr = u"2019-07-08T23:21:32.508797700Z 3\n" serr += u"2019-07-08T23:21:32.508797600Z 2\n" lines = dr._sort_lines_by_time(sout.encode("utf-8"), serr.encode("utf-8")) - self.assertEquals(lines[0]["line"], "1") - self.assertEquals(lines[1]["line"], "2") - self.assertEquals(lines[2]["line"], "3") - self.assertEquals(lines[3]["line"], "4") - self.assertEquals(lines[1]["is_error"], 1) + self.assertEqual(lines[0]["line"], "1") + self.assertEqual(lines[1]["line"], "2") + self.assertEqual(lines[2]["line"], "3") + self.assertEqual(lines[3]["line"], "4") + self.assertEqual(lines[1]["is_error"], 1) def test_sort_empty(self): dr = DockerRunner() sout = u"2019-07-08T23:21:32.508696500Z \n" serr = u"2019-07-08T23:21:32.508797700Z \n" lines = dr._sort_lines_by_time(sout.encode("utf-8"), serr.encode("utf-8")) - self.assertEquals(lines[0]["line"], "") - self.assertEquals(lines[1]["line"], "") - self.assertEquals(lines[1]["is_error"], 1) + self.assertEqual(lines[0]["line"], "") + self.assertEqual(lines[1]["line"], "") + self.assertEqual(lines[1]["is_error"], 1) def test_exceptions(self): dr = DockerRunner() @@ -102,4 +102,5 @@ def test_exceptions(self): with self.assertRaises(ValueError): dr._shepherd(c, "1234", [q]) result = q.get() - print(result) + expected = ['finished', '1234', None] + self.assertEqual(expected, result) diff --git a/test/test_jobrunner.py b/test/test_jobrunner.py index 91244d2..1bc6ca8 100644 --- a/test/test_jobrunner.py +++ b/test/test_jobrunner.py @@ -119,7 +119,7 @@ def test_run_sub(self, mock_ee2, mock_auth): @attr("offline") @patch("JobRunner.JobRunner.KBaseAuth", autospec=True) @patch("JobRunner.JobRunner.EE2", autospec=True) - def test_run(self, mock_ee2, mock_auth): + def test_run_mock_app(self, mock_ee2, mock_auth): self._cleanup(self.jobid) params = deepcopy(EE2_JOB_PARAMS) params["method"] = "mock_app.bogus" @@ -297,7 +297,7 @@ def test_error_update(self, mock_ee2, mock_auth): with self.assertRaises(ConnectionError): jr.run() emsg = "Failed to get job parameters. Exiting." - self.assertEquals(mlog.errors[0], emsg) + self.assertEqual(mlog.errors[0], emsg) @attr("offline") @patch("JobRunner.JobRunner.EE2", autospec=True) @@ -349,6 +349,8 @@ def test_expire_loop(self, mock_auth, mock_ee2): @patch("JobRunner.JobRunner.EE2", autospec=True) def test_special(self, mock_ee2, mock_auth): jr = JobRunner(self.config) + jr.sr._BATCH_POLL = 1 + jr.sr._FILE_POLL = 1 jr._get_cgroup = MagicMock(return_value=None) params = deepcopy(EE2_JOB_PARAMS) submitscript = os.path.join(self.workdir, "workdir/tmp", "submit.sl") @@ -415,3 +417,25 @@ def test_run_wdl(self, mock_ee2, mock_auth): jr._get_token_lifetime = MagicMock(return_value=self.future) out = jr.run() self.assertNotIn("error", out) + + # Disabled for now + @patch("JobRunner.JobRunner.KBaseAuth", autospec=True) + def xtest_callback(self, mock_auth): + self._cleanup(self.jobid) + config = Config(job_id=self.jobid, workdir=self.workdir, use_ee2=False) + + jr = JobRunner(config) + mlog = MockLogger() + jr.logger = mlog + jr.sr.logger = mlog + rv = deepcopy(CATALOG_GET_MODULE_VERSION) + rv["docker_img_name"] = "test/runtester:latest" + jr._get_cgroup = MagicMock(return_value=None) + jr.cc.catalog.get_module_version = MagicMock(return_value=rv) + jr.cc.catalog.list_volume_mounts = MagicMock(return_value=[]) + jr.cc.catalog.get_secure_config_params = MagicMock(return_value=None) + jr.auth.get_user.return_value = "bogus" + jr._get_token_lifetime = MagicMock(return_value=self.future) + jr.jr_queue.put(["cancel", None, None]) + jr.callback() + diff --git a/test/test_methodrunner.py b/test/test_methodrunner.py index 9a4053b..b0b9e38 100644 --- a/test/test_methodrunner.py +++ b/test/test_methodrunner.py @@ -107,7 +107,7 @@ def test_no_output(self): self.assertEqual(self.job_id, out[1]) result = mr.get_output(self.job_id, subjob=False) self.assertIn("error", result) - self.assertEquals(result["error"]["name"], "Output not found") + self.assertEqual(result["error"]["name"], "Output not found") def test_too_much_output(self): mr = MethodRunner(self.cfg, logger=MockLogger()) @@ -125,7 +125,7 @@ def test_too_much_output(self): result = mr.get_output(self.job_id, subjob=False, max_size=10) self.assertIn("error", result) err = "Too much output from a method" - self.assertEquals(result["error"]["name"], err) + self.assertEqual(result["error"]["name"], err) def test_secure_params(self): mr = MethodRunner(self.cfg, logger=MockLogger()) @@ -156,7 +156,7 @@ def test_bad_method(self): self.assertEqual(self.job_id, out[1]) result = mr.get_output(self.job_id, subjob=False) self.assertIn("error", result) - self.assertEquals(result["error"]["name"], "Method not found") + self.assertEqual(result["error"]["name"], "Method not found") def test_bad_runtime(self): cfg = deepcopy(self.cfg) diff --git a/test/test_shifter.py b/test/test_shifter.py index 3061886..587e1e5 100644 --- a/test/test_shifter.py +++ b/test/test_shifter.py @@ -40,6 +40,6 @@ def test_run(self): app = "mock_app:latest" self.sr.run(app, app, env, vols, labels, [q]) result = q.get() - self.assertEquals(result[0], "finished") - self.assertEquals(len(result), 3) + self.assertEqual(result[0], "finished") + self.assertEqual(len(result), 3) self.assertIn("line", self.logger.all[0]) diff --git a/test/test_specialrunner.py b/test/test_specialrunner.py index 5cbebf8..4e8d623 100644 --- a/test/test_specialrunner.py +++ b/test/test_specialrunner.py @@ -77,8 +77,8 @@ def test_run(self): self.sr._BATCH_POLL = 0.3 self.sr.run(config, data, job_id, fin_q=[q]) result = q.get(timeout=10) - self.assertEquals(result[0], "finished_special") - self.assertEquals(len(result), 3) + self.assertEqual(result[0], "finished_special") + self.assertEqual(len(result), 3) self.assertIn(["line1\n", 0], self.logger.all) self.assertIn(["line2\n", 1], self.logger.all) self.assertIn(["line3\n", 0], self.logger.all) @@ -102,8 +102,8 @@ def test_run_wdl(self): self.sr._BATCH_POLL = 0.3 self.sr.run(config, data, job_id, fin_q=[q]) result = q.get(timeout=60) - self.assertEquals(result[0], "finished_special") - self.assertEquals(len(result), 3) + self.assertEqual(result[0], "finished_special") + self.assertEqual(len(result), 3) output = self.logger.all count = False for line in output: