本文整理汇总了Python中thclient.TreeherderJobCollection.get_job方法的典型用法代码示例。如果您正苦于以下问题:Python TreeherderJobCollection.get_job方法的具体用法?Python TreeherderJobCollection.get_job怎么用?Python TreeherderJobCollection.get_job使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类thclient.TreeherderJobCollection
的用法示例。
在下文中一共展示了TreeherderJobCollection.get_job方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: submit_pending
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def submit_pending(self, jobs):
"""Submit jobs pending notifications to Treeherder
:param jobs: Lists of jobs to be reported. (TestJob)
"""
self.logger.debug(type(self).__name__ +
'.submit_pending: jobs =\n%s' % jobs)
if not self.url or not jobs:
self.logger.debug(type(self).__name__ +
'.submit_pending: no url/job')
return
tjc = TreeherderJobCollection()
for j in jobs:
project = j.build['repo']
revision = j.build['revision']
revision_hash = self.request_revision_hash(project, revision)
if not revision_hash:
self.logger.debug(type(self).__name__ +
'.submit_pending: no revision hash')
return
j.submit_timestamp = timestamp_now()
self.logger.info('creating Treeherder job %s for %s %s, '
'revision_hash: %s' % (j.job_guid,
j.name, project,
revision_hash))
tj = tjc.get_job()
tj.add_description(j.description)
tj.add_reason(j.reason)
tj.add_tier(self.tier)
tj.add_revision_hash(revision_hash)
tj.add_project(project)
tj.add_who(j.who)
tj.add_job_guid(j.job_guid)
tj.add_job_name(j.job_name)
tj.add_job_symbol(j.job_symbol)
tj.add_group_name(j.group_name)
tj.add_group_symbol(j.group_symbol)
tj.add_product_name(j.build['product'])
tj.add_state(JobState.PENDING)
tj.add_submit_timestamp(j.submit_timestamp)
# XXX need to send these until Bug 1066346 fixed.
tj.add_start_timestamp(j.submit_timestamp)
tj.add_end_timestamp(j.submit_timestamp)
tj.add_build_url(j.build_url)
tj.add_build_info(j.build['os_name'],
j.build['platform'],
j.build['architecture'])
tj.add_machine(j.machine['host'])
tj.add_machine_info(j.machine['os_name'],
j.machine['platform'],
j.machine['architecture'])
# TODO determine type of build
tj.add_option_collection({'opt': True})
tjc.add(tj)
self.post_request(project, tjc, j.job_guid)
示例2: test_objectstore_create
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def test_objectstore_create(job_sample, jm):
"""
test posting data to the objectstore via webtest.
extected result are:
- return code 200
- return message successful
- 1 job stored in the objectstore
"""
tjc = TreeherderJobCollection()
tj = tjc.get_job(job_sample)
tjc.add(tj)
resp = test_utils.post_collection(jm.project, tjc)
assert resp.status_int == 200
assert resp.json['message'] == 'well-formed JSON stored'
stored_objs = jm.get_os_dhub().execute(
proc="objectstore_test.selects.row_by_guid",
placeholders=[job_sample["job"]["job_guid"]]
)
assert len(stored_objs) == 1
assert stored_objs[0]['job_guid'] == job_sample["job"]["job_guid"]
示例3: submit_running
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def submit_running(self, machine, build_url, project, revision_hash, tests=None):
"""Submit tests running notifications to Treeherder
:param machine: machine id
:param build_url: url to build being tested.
:param project: repository of build.
:param revision_hash: Treeherder revision hash of build.
:param tests: Lists of tests to be reported.
"""
if tests is None:
tests = []
logger.debug('AutophoneTreeherder.submit_running: %s' % tests)
if not self.url or not revision_hash:
logger.debug('AutophoneTreeherder.submit_running: no url/revision hash')
return
tjc = TreeherderJobCollection()
for t in tests:
logger.debug('AutophoneTreeherder.submit_running: '
'for %s %s' % (t.name, project))
t.submit_timestamp = timestamp_now()
t.start_timestamp = timestamp_now()
tj = tjc.get_job()
tj.add_tier(self.options.treeherder_tier)
tj.add_revision_hash(revision_hash)
tj.add_project(project)
tj.add_job_guid(t.job_guid)
tj.add_job_name(t.job_name)
tj.add_job_symbol(t.job_symbol)
tj.add_group_name(t.group_name)
tj.add_group_symbol(t.group_symbol)
tj.add_product_name('fennec')
tj.add_state(TestState.RUNNING)
tj.add_submit_timestamp(t.submit_timestamp)
tj.add_start_timestamp(t.start_timestamp)
# XXX need to send these until Bug 1066346 fixed.
tj.add_end_timestamp(0)
#
tj.add_machine(machine)
tj.add_build_info('android', t.phone.platform, t.phone.architecture)
tj.add_machine_info('android',t.phone.platform, t.phone.architecture)
tj.add_option_collection({'opt': True})
tj.add_artifact('buildapi', 'json', {
'buildername': t.get_buildername(project)})
tj.add_artifact('privatebuild', 'json', {
'build_url': build_url,
'config_file': t.config_file,
'chunk': t.chunk})
tjc.add(tj)
logger.debug('AutophoneTreeherder.submit_running: tjc: %s' %
tjc.to_json())
self.queue_request(machine, project, tjc)
示例4: create_job_collection
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def create_job_collection(dataset):
print("[DEBUG] Job Collection:")
print(dataset)
tjc = TreeherderJobCollection()
for data in dataset:
tj = tjc.get_job()
tj.add_revision(data['revision'])
tj.add_project(data['project'])
tj.add_coalesced_guid(data['job']['coalesced'])
tj.add_job_guid(data['job']['job_guid'])
tj.add_job_name(data['job']['name'])
tj.add_job_symbol(data['job']['job_symbol'])
tj.add_group_name(data['job']['group_name'])
tj.add_group_symbol(data['job']['group_symbol'])
tj.add_description(data['job']['desc'])
tj.add_product_name(data['job']['product_name'])
tj.add_state(data['job']['state'])
tj.add_result(data['job']['result'])
tj.add_reason(data['job']['reason'])
tj.add_who(data['job']['who'])
tj.add_tier(data['job']['tier'])
tj.add_submit_timestamp(data['job']['submit_timestamp'])
tj.add_start_timestamp(data['job']['start_timestamp'])
tj.add_end_timestamp(data['job']['end_timestamp'])
tj.add_machine(data['job']['machine'])
tj.add_build_info(
data['job']['build_platform']['os_name'],
data['job']['build_platform']['platform'],
data['job']['build_platform']['architecture']
)
tj.add_machine_info(
data['job']['machine_platform']['os_name'],
data['job']['machine_platform']['platform'],
data['job']['machine_platform']['architecture']
)
tj.add_option_collection(data['job']['option_collection'])
# for log_reference in data['job']['log_references']:
# tj.add_log_reference( 'buildbot_text', log_reference['url'])
# data['artifact'] is a list of artifacts
for artifact_data in data['job']['artifacts']:
tj.add_artifact(
artifact_data['name'],
artifact_data['type'],
artifact_data['blob']
)
tjc.add(tj)
return tjc
示例5: submit_pending
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def submit_pending(self, tests=[]):
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_pending: %s' % tests)
if not self.url or not self.worker.build.revision_hash:
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_pending: no url/revision hash')
return
tjc = TreeherderJobCollection(job_type='update')
if not tests:
tests = self.worker.runnable_tests
for t in tests:
t.message = None
t.submit_timestamp = timestamp_now()
t.job_guid = generate_guid()
t.job_details = []
self.worker.loggerdeco.info('creating Treeherder job %s for %s %s, '
'revision: %s, revision_hash: %s' % (
t.job_guid, t.name, t.build.tree,
t.build.revision, t.build.revision_hash))
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_pending: '
'test config_file=%s, config sections=%s' % (
t.config_file, t.cfg.sections()))
tj = tjc.get_job()
tj.add_revision_hash(self.worker.build.revision_hash)
tj.add_project(self.worker.build.tree)
tj.add_job_guid(t.job_guid)
tj.add_job_name(t.job_name)
tj.add_job_symbol(t.job_symbol)
tj.add_group_name(t.group_name)
tj.add_group_symbol(t.group_symbol)
tj.add_product_name('fennec')
tj.add_state(TestState.PENDING)
tj.add_submit_timestamp(t.submit_timestamp)
# XXX need to send these until Bug 1066346 fixed.
tj.add_start_timestamp(t.submit_timestamp)
tj.add_end_timestamp(t.submit_timestamp)
#
tj.add_machine(t.phone.id)
tj.add_build_url(self.worker.build.url)
tj.add_build_info('android', t.phone.platform, t.phone.architecture)
tj.add_machine_info('android',t.phone.platform, t.phone.architecture)
tj.add_option_collection({'opt': True})
# Fake the buildername from buildbot...
tj.add_artifact('buildapi', 'json', {'buildername': t.buildername})
tjc.add(tj)
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_pending: tjc: %s' % (
tjc.to_json()))
self.post_request(tjc)
示例6: completed_jobs_stored
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def completed_jobs_stored(
jm, completed_jobs, result_set_stored, mock_send_request):
"""
stores a list of buildapi completed jobs into the objectstore
"""
completed_jobs['revision_hash'] = result_set_stored[0]['revision_hash']
tjc = TreeherderJobCollection()
tj = tjc.get_job(completed_jobs)
tjc.add(tj)
test_utils.post_collection(jm.project, tjc)
示例7: running_jobs_stored
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def running_jobs_stored(
jm, running_jobs, result_set_stored):
"""
stores a list of buildapi running jobs into the objectstore
"""
running_jobs.update(result_set_stored[0])
tjc = TreeherderJobCollection(job_type='update')
tj = tjc.get_job(running_jobs)
tjc.add(tj)
test_utils.post_collection(jm.project, tjc)
示例8: test_send_without_oauth
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def test_send_without_oauth(
self, mock_HTTPConnection, mock_time, mock_generate_nonce):
"""Can send data to the server."""
mock_time.return_value = 1342229050
mock_generate_nonce.return_value = "46810593"
host = 'host'
req = TreeherderRequest(
protocol='http',
host=host,
project='project',
oauth_key=None,
oauth_secret=None,
)
mock_conn = mock_HTTPConnection.return_value
mock_request = mock_conn.request
mock_response = mock_conn.getresponse.return_value
tjc = TreeherderJobCollection()
for job in self.job_data:
tjc.add( tjc.get_job(job) )
break
response = req.post(tjc)
self.assertEqual(mock_HTTPConnection.call_count, 1)
self.assertEqual(mock_HTTPConnection.call_args[0][0], host)
self.assertEqual(mock_response, response)
self.assertEqual(mock_request.call_count, 1)
uri = req.get_uri(tjc)
method, path, data, header = mock_request.call_args[0]
self.assertEqual(method, "POST")
deserialized_data = json.loads(data)
self.assertEqual(
deserialized_data,
tjc.get_collection_data()
)
self.assertEqual(
header['Content-Type'],
'application/json',
)
示例9: create_job_collection
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def create_job_collection(self, dataset):
# reference the page about tjc ttps://github.com/mozilla/treeherder/blob/master/docs/submitting_data.rst
tjc = TreeherderJobCollection()
for data in dataset:
tj = tjc.get_job()
tj.add_revision(data['revision'])
tj.add_project(data['project'])
tj.add_coalesced_guid(data['job']['coalesced'])
tj.add_job_guid(data['job']['job_guid'])
tj.add_job_name(data['job']['name'])
tj.add_job_symbol(data['job']['job_symbol'])
tj.add_group_name(data['job']['group_name'])
tj.add_group_symbol(data['job']['group_symbol'])
tj.add_description(data['job']['desc'])
tj.add_product_name(data['job']['product_name'])
tj.add_state(data['job']['state'])
tj.add_result(data['job']['result'])
tj.add_reason(data['job']['reason'])
tj.add_who(data['job']['who'])
tj.add_tier(data['job']['tier'])
tj.add_submit_timestamp(data['job']['submit_timestamp'])
tj.add_start_timestamp(data['job']['start_timestamp'])
tj.add_end_timestamp(data['job']['end_timestamp'])
tj.add_machine(data['job']['machine'])
tj.add_build_info(
data['job']['build_platform']['os_name'],
data['job']['build_platform']['platform'],
data['job']['build_platform']['architecture']
)
tj.add_machine_info(
data['job']['machine_platform']['os_name'],
data['job']['machine_platform']['platform'],
data['job']['machine_platform']['architecture']
)
tj.add_option_collection(data['job']['option_collection'])
# data['artifact'] is a list of artifacts
for artifact_data in data['job']['artifacts']:
tj.add_artifact(
artifact_data['name'],
artifact_data['type'],
artifact_data['blob']
)
tjc.add(tj)
return tjc
示例10: pending_jobs_stored
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def pending_jobs_stored(
jm, pending_jobs, result_set_stored):
"""
stores a list of buildapi pending jobs into the jobs store
using BuildApiTreeHerderAdapter
"""
pending_jobs.update(result_set_stored[0])
tjc = TreeherderJobCollection(job_type='update')
tj = tjc.get_job(pending_jobs)
tjc.add(tj)
test_utils.post_collection(jm.project, tjc)
示例11: create_job_collection
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def create_job_collection(dataset):
print("[DEBUG] Job Collection:")
print(dataset)
tjc = TreeherderJobCollection()
for data in dataset:
tj = tjc.get_job()
tj.add_revision(data["revision"])
tj.add_project(data["project"])
tj.add_coalesced_guid(data["job"]["coalesced"])
tj.add_job_guid(data["job"]["job_guid"])
tj.add_job_name(data["job"]["name"])
tj.add_job_symbol(data["job"]["job_symbol"])
tj.add_group_name(data["job"]["group_name"])
tj.add_group_symbol(data["job"]["group_symbol"])
tj.add_description(data["job"]["desc"])
tj.add_product_name(data["job"]["product_name"])
tj.add_state(data["job"]["state"])
tj.add_result(data["job"]["result"])
tj.add_reason(data["job"]["reason"])
tj.add_who(data["job"]["who"])
tj.add_tier(data["job"]["tier"])
tj.add_submit_timestamp(data["job"]["submit_timestamp"])
tj.add_start_timestamp(data["job"]["start_timestamp"])
tj.add_end_timestamp(data["job"]["end_timestamp"])
tj.add_machine(data["job"]["machine"])
tj.add_build_info(
data["job"]["build_platform"]["os_name"],
data["job"]["build_platform"]["platform"],
data["job"]["build_platform"]["architecture"],
)
tj.add_machine_info(
data["job"]["machine_platform"]["os_name"],
data["job"]["machine_platform"]["platform"],
data["job"]["machine_platform"]["architecture"],
)
tj.add_option_collection(data["job"]["option_collection"])
for artifact_data in data["job"]["artifacts"]:
tj.add_artifact(artifact_data["name"], artifact_data["type"], artifact_data["blob"])
tjc.add(tj)
return tjc
示例12: submit_running
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def submit_running(self, tests=[]):
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_running: %s' % tests)
if not self.url or not self.worker.build.revision_hash:
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_running: no url/revision hash')
return
tjc = TreeherderJobCollection(job_type='update')
if not tests:
tests = self.worker.runnable_tests
for t in tests:
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_running: '
'for %s %s' % (t.name, t.build.tree))
t.start_timestamp = timestamp_now()
tj = tjc.get_job()
tj.add_revision_hash(self.worker.build.revision_hash)
tj.add_project(self.worker.build.tree)
tj.add_job_guid(t.job_guid)
tj.add_job_name(t.job_name)
tj.add_job_symbol(t.job_symbol)
tj.add_group_name(t.group_name)
tj.add_group_symbol(t.group_symbol)
tj.add_product_name('fennec')
tj.add_state(TestState.RUNNING)
tj.add_submit_timestamp(t.submit_timestamp)
tj.add_start_timestamp(t.start_timestamp)
# XXX need to send these until Bug 1066346 fixed.
tj.add_end_timestamp(t.start_timestamp)
#
tj.add_machine(t.phone.id)
tj.add_build_url(self.worker.build.url)
tj.add_build_info('android', t.phone.platform, t.phone.architecture)
tj.add_machine_info('android',t.phone.platform, t.phone.architecture)
tj.add_option_collection({'opt': True})
tj.add_artifact('buildapi', 'json', {'buildername': t.buildername})
tjc.add(tj)
self.worker.loggerdeco.debug('AutophoneTreeherder.submit_running: tjc: %s' %
tjc.to_json())
self.post_request(tjc)
示例13: test_objectstore_with_bad_secret
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def test_objectstore_with_bad_secret(job_sample, jm):
"""
test calling with the wrong project secret.
extected result are:
- return code 403
- return message authentication failed
"""
tjc = TreeherderJobCollection()
tj = tjc.get_job(job_sample)
tjc.add(tj)
resp = test_utils.post_collection(
jm.project, tjc, status=403, consumer_secret='not so secret'
)
assert resp.status_int == 403
assert resp.json['message'] == "Client authentication failed for project, {0}".format(jm.project)
assert resp.json['response'] == "invalid_client"
示例14: test_objectstore_with_bad_key
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def test_objectstore_with_bad_key(job_sample, jm):
"""
test calling with the wrong project key.
extected result are:
- return code 403
- return message failed
"""
tjc = TreeherderJobCollection()
tj = tjc.get_job(job_sample)
tjc.add(tj)
resp = test_utils.post_collection(
jm.project, tjc, status=403, consumer_key='wrong key'
)
assert resp.status_int == 403
assert resp.json['response'] == "access_denied"
assert resp.json['message'] == "oauth_consumer_key does not match project, {0}, credentials".format(jm.project)
示例15: test_send_job_collection
# 需要导入模块: from thclient import TreeherderJobCollection [as 别名]
# 或者: from thclient.TreeherderJobCollection import get_job [as 别名]
def test_send_job_collection(self, mock_send):
"""Can add a treeherder collections to a TreeherderRequest."""
tjc = TreeherderJobCollection()
for job in self.job_data:
tjc.add( tjc.get_job(job) )
req = TreeherderRequest(
protocol='http',
host='host',
project='project',
oauth_key='key',
oauth_secret='secret',
)
req.post(tjc)
self.assertEqual(mock_send.call_count, 1)
self.assertEqual(
tjc.to_json(),
mock_send.call_args_list[0][1]['data']
)