Spaces:
Running on Zero
Running on Zero
| import unittest | |
| import uuid | |
| from types import SimpleNamespace | |
| from unittest.mock import patch | |
| from app import worker | |
| class _JobQuery: | |
| def __init__(self, job): | |
| self.job = job | |
| def filter(self, *_args, **_kwargs): | |
| return self | |
| def first(self): | |
| return self.job | |
| class _Session: | |
| def __init__(self, job): | |
| self.job = job | |
| self.closed = False | |
| def query(self, _model): | |
| return _JobQuery(self.job) | |
| def close(self): | |
| self.closed = True | |
| class WorkerQueueTests(unittest.TestCase): | |
| def test_terminal_job_is_not_executed_again(self): | |
| job = SimpleNamespace(status="succeeded") | |
| session = _Session(job) | |
| with ( | |
| patch.object(worker, "SessionLocal", return_value=session), | |
| patch.object(worker, "_set") as set_job, | |
| ): | |
| worker._run_job(uuid.uuid4()) | |
| set_job.assert_not_called() | |
| self.assertTrue(session.closed) | |
| if __name__ == "__main__": | |
| unittest.main() | |