Skip to content

Commit c3eb54e

Browse files
committed
Merge branch 'main' of github.com:sibson/redbeat
2 parents 9e600ef + 06374ed commit c3eb54e

4 files changed

Lines changed: 14 additions & 6 deletions

File tree

.github/workflows/pythonapp.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
max-parallel: 4
1515
matrix:
1616
os: [ubuntu-latest ] #, windows-latest] tests fail on windows
17-
python-version: ['3.8', '3.9', '3.10', '3.11']
17+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
1818
runs-on: ${{ matrix.os }}
1919

2020
steps:
@@ -44,7 +44,7 @@ jobs:
4444
- name: Set up Python environment
4545
uses: actions/setup-python@v4
4646
with:
47-
python-version: '3.11'
47+
python-version: '3.12'
4848
cache: 'pip'
4949

5050
- name: Install dependencies

redbeat/schedulers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -453,14 +453,17 @@ def update_from_dict(self, dict_):
453453
redis_key = self.Entry.generate_key(self.app, name)
454454

455455
try:
456-
entry = self.Entry.from_key(redis_key, app=self.app)
456+
redis_entry = self.Entry.from_key(redis_key, app=self.app)
457+
entry = self._maybe_entry(name, entry)
458+
entry.last_run_at = (
459+
redis_entry.last_run_at
460+
) # update definition while preserving last_run_at
457461
except KeyError:
458462
try:
459463
entry = self._maybe_entry(name, entry)
460464
except Exception as exc:
461465
logger.error(ADD_ENTRY_ERROR, name, exc, entry)
462466
continue
463-
464467
entry.save() # store into redis
465468
logger.debug("beat: Stored entry: %s", entry)
466469

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ classifiers=
2020
Programming Language :: Python :: 3.9
2121
Programming Language :: Python :: 3.10
2222
Programming Language :: Python :: 3.11
23+
Programming Language :: Python :: 3.12
2324
Programming Language :: Python :: Implementation :: CPython
2425
Operating System :: OS Independent
2526

tests/test_scheduler.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,16 +190,20 @@ def test_lock_acquisition_failed_during_startup(self):
190190

191191
class TestRedBeatSchedulerUpdateFromDict(RedBeatSchedulerTestBase):
192192
@patch.object(RedBeatSchedulerEntry, "from_key")
193-
def test_update_from_dict_fetch_redis_entry(self, mock_from_key: MagicMock) -> None:
193+
@patch.object(RedBeatSchedulerEntry, "save")
194+
def test_update_from_dict_fetch_redis_entry(
195+
self, mock_entry_save: MagicMock, mock_from_key: MagicMock
196+
) -> None:
194197
mock_entry_from_redis_key = mock_from_key.return_value
198+
mock_entry_from_redis_key.last_run_at = datetime.now()
195199

196200
self.s.update_from_dict(
197201
dict_={'task_name': {'task': 'tasks.task_name', 'schedule': timedelta(seconds=30)}}
198202
)
199203

200204
mock_from_key.assert_called_once_with("rb-tests:task_name", app=self.app)
201205

202-
mock_entry_from_redis_key.save.assert_called_once()
206+
mock_entry_save.assert_called_once()
203207

204208
@patch.object(RedBeatSchedulerEntry, "from_key")
205209
@patch.object(RedBeatSchedulerEntry, "save")

0 commit comments

Comments
 (0)