fune/taskcluster/taskgraph/test/test_actions_util.py
Dustin J. Mitchell 91f4fe8c61 Bug 1398277: special-case retriggering of tasks not in the taskgraph; r=bstack
This will apply to cron tasks, action tasks, and decision tasks.  It is a
distinct retrigger implementation because (a) we do not want to follow
dependencies, and (b) it takes a lot of scopes to create a decision task, so we
need to limit access to this action.

MozReview-Commit-ID: 21DVSiagcrO

--HG--
extra : rebase_source : 6f027e349e245e4aa4dbed81145a0a5d75218cb1
extra : histedit_source : eff99aee5a0e7496b0734748b29739480eb0e3fb
2018-07-04 02:46:59 +00:00

46 lines
1.4 KiB
Python

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import absolute_import, print_function, unicode_literals
import unittest
from mozunit import main
from taskgraph.actions.util import (
relativize_datestamps
)
TASK_DEF = {
'created': '2017-10-10T18:33:03.460Z',
# note that this is not an even number of seconds off!
'deadline': '2017-10-11T18:33:03.461Z',
'dependencies': [],
'expires': '2018-10-10T18:33:04.461Z',
'payload': {
'artifacts': {
'public': {
'expires': '2018-10-10T18:33:03.463Z',
'path': '/builds/worker/artifacts',
'type': 'directory',
},
},
'maxRunTime': 1800,
},
}
class TestRelativize(unittest.TestCase):
def test_relativize(self):
rel = relativize_datestamps(TASK_DEF)
import pprint
pprint.pprint(rel)
assert rel['created'] == {'relative-datestamp': '0 seconds'}
assert rel['deadline'] == {'relative-datestamp': '86400 seconds'}
assert rel['expires'] == {'relative-datestamp': '31536001 seconds'}
assert rel['payload']['artifacts']['public']['expires'] == \
{'relative-datestamp': '31536000 seconds'}
if __name__ == '__main__':
main()