mirror of
https://github.com/python-telegram-bot/python-telegram-bot.git
synced 2025-03-27 08:50:38 +01:00
Improve Job.__getattr__ (#2832)
This commit is contained in:
parent
5891db2f6b
commit
6382361161
2 changed files with 20 additions and 4 deletions
|
@ -568,9 +568,13 @@ class Job:
|
|||
@property
|
||||
def next_t(self) -> Optional[datetime.datetime]:
|
||||
"""
|
||||
:obj:`datetime.datetime`: Datetime for the next job execution.
|
||||
Datetime is localized according to :attr:`datetime.datetime.tzinfo`.
|
||||
If job is removed or already ran it equals to :obj:`None`.
|
||||
:class:`datetime.datetime`: Datetime for the next job execution.
|
||||
Datetime is localized according to :attr:`datetime.datetime.tzinfo`.
|
||||
If job is removed or already ran it equals to :obj:`None`.
|
||||
|
||||
Warning:
|
||||
This attribute is only available, if the :class:`telegram.ext.JobQueue` this job
|
||||
belongs to is already started. Otherwise APScheduler raises an :exc:`AttributeError`.
|
||||
"""
|
||||
return self.job.next_run_time
|
||||
|
||||
|
@ -579,7 +583,12 @@ class Job:
|
|||
return job.func
|
||||
|
||||
def __getattr__(self, item: str) -> object:
|
||||
return getattr(self.job, item)
|
||||
try:
|
||||
return getattr(self.job, item)
|
||||
except AttributeError as exc:
|
||||
raise AttributeError(
|
||||
f"Neither 'telegram.ext.Job' nor 'apscheduler.job.Job' has attribute '{item}'"
|
||||
) from exc
|
||||
|
||||
def __lt__(self, other: object) -> bool:
|
||||
return False
|
||||
|
|
|
@ -519,3 +519,10 @@ class TestJobQueue:
|
|||
job_queue.run_once(callback, 0.1)
|
||||
sleep(0.15)
|
||||
assert self.result == (CustomContext, None, None, int)
|
||||
|
||||
def test_attribute_error(self):
|
||||
job = Job(self.job_run_once)
|
||||
with pytest.raises(
|
||||
AttributeError, match="nor 'apscheduler.job.Job' has attribute 'error'"
|
||||
):
|
||||
job.error
|
||||
|
|
Loading…
Add table
Reference in a new issue