diff options
| author | Vladimir Protasov <eoranged@users.noreply.github.com> | 2019-10-08 05:46:06 +0300 |
|---|---|---|
| committer | Selwin Ong <selwin.ong@gmail.com> | 2019-10-08 09:46:06 +0700 |
| commit | 8c34e2b353a53971c2390f0ab84ffeba3cb2b8b3 (patch) | |
| tree | 8018b12e1a5278eff6aac7425be28fda0f8eeab7 /tests/test_worker.py | |
| parent | 68276e725277f83d1cf7ab164b6b59a7d5d3cf19 (diff) | |
| download | rq-8c34e2b353a53971c2390f0ab84ffeba3cb2b8b3.tar.gz | |
Store worker's RQ and Python versions (#1125)
* Store worker version to Redis
* Store worker's Python version to Redis
* Store worker version in __init__ body as suggested in review
Diffstat (limited to 'tests/test_worker.py')
| -rw-r--r-- | tests/test_worker.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/test_worker.py b/tests/test_worker.py index 8f27223..25fde13 100644 --- a/tests/test_worker.py +++ b/tests/test_worker.py @@ -33,6 +33,7 @@ from rq.job import Job, JobStatus from rq.registry import StartedJobRegistry, FailedJobRegistry, FinishedJobRegistry from rq.suspension import resume, suspend from rq.utils import utcnow +from rq.version import VERSION from rq.worker import HerokuWorker, WorkerStatus @@ -140,6 +141,7 @@ class TestWorker(RQTestCase): self.assertEqual(worker.get_state(), WorkerStatus.STARTED) self.assertEqual(worker._job_id, None) self.assertTrue(worker.key in Worker.all_keys(worker.connection)) + self.assertEqual(worker.version, VERSION) # If worker is gone, its keys should also be removed worker.connection.delete(worker.key) @@ -920,6 +922,35 @@ class TestWorker(RQTestCase): w.dequeue_job_and_maintain_ttl(10) self.assertNotIn("Frank", mock_logger_info.call_args[0][2]) + def test_worker_version(self): + q = Queue() + w = Worker([q]) + w.version = '0.0.0' + w.register_birth() + self.assertEqual(w.version, '0.0.0') + w.refresh() + self.assertEqual(w.version, '0.0.0') + # making sure that version is preserved when worker is retrieved by key + worker = Worker.find_by_key(w.key) + self.assertEqual(worker.version, '0.0.0') + + def test_python_version(self): + python_version = sys.version + q = Queue() + w = Worker([q]) + w.register_birth() + self.assertEqual(w.python_version, python_version) + # now patching version + python_version = 'X.Y.Z.final' # dummy version + self.assertNotEqual(python_version, sys.version) # otherwise tests are pointless + w2 = Worker([q]) + w2.python_version = python_version + w2.register_birth() + self.assertEqual(w2.python_version, python_version) + # making sure that version is preserved when worker is retrieved by key + worker = Worker.find_by_key(w2.key) + self.assertEqual(worker.python_version, python_version) + def kill_worker(pid, double_kill): # wait for the worker to be started over on the main process |
