-
Notifications
You must be signed in to change notification settings - Fork 492
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
NAS-130986 / 25.04 / fix cronjob API test regressions (#14411)
* fix cronjob API test regressions * no reason to sleep, just run the job
- Loading branch information
Showing
1 changed file
with
19 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +1,28 @@ | ||
from time import sleep | ||
|
||
import pytest | ||
|
||
from middlewared.test.integration.utils import call, ssh | ||
|
||
TESTFILE = '/tmp/.testFileCreatedViaCronjob' | ||
|
||
|
||
def test_create_check_update_verify_cron_job(): | ||
cronjob_dict = {} | ||
|
||
# create job | ||
results = call("cronjob.create", { | ||
'user': 'root', | ||
'command': f'touch "{TESTFILE}"', | ||
'schedule': {'minute': '*/1'} | ||
}) | ||
cronjob_dict.update(results) | ||
TESTFILE = '/mnt/cronjob_testfile' | ||
|
||
# verify job creation | ||
id = cronjob_dict['id'] | ||
results = call('cronjob.query', [['id', '=', id]], {"get": True}) | ||
assert results['enabled'] is True | ||
|
||
# wait so job can run | ||
sleep(65) | ||
def test_cron_job(): | ||
try: | ||
id = call( | ||
'cronjob.create', | ||
{ | ||
'user': 'root', | ||
'enabled': True, | ||
'command': f'echo "yeah" > "{TESTFILE}"', | ||
'schedule': {'minute': '*/1'} | ||
} | ||
)['id'] | ||
assert call('cronjob.query', [['id', '=', id]], {"get": True})['enabled'] is True | ||
except Exception as e: | ||
assert False, f'Unexpected failure: {str(e)}' | ||
|
||
# disable job | ||
id = cronjob_dict['id'] | ||
call('cronjob.update', id, {'enabled': False}) | ||
call('cronjob.run', id, job=True) | ||
assert call('filesystem.statfs', TESTFILE)['blocksize'] | ||
|
||
# remove test file | ||
results = ssh(f'rm "{TESTFILE}"', complete_response=True) | ||
assert results['result'] is True, results['output'] | ||
|
||
# delete job | ||
call('cronjob.delete', cronjob_dict['id']) | ||
results = call('cronjob.query', [['id', '=', id]], {"get": True}) | ||
assert results.json() == [] | ||
call('cronjob.delete', id) | ||
assert call('cronjob.query', [['id', '=', id]]) == [] |