本文整理汇总了Python中models.Build类的典型用法代码示例。如果您正苦于以下问题:Python Build类的具体用法?Python Build怎么用?Python Build使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Build类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_build
def get_build(self):
""" Pre-fill some build attributes based on GET parameters """
build = Build(
forum_id = self.cleaned_data['forum_id'],
topic_id = self.cleaned_data['topic_id'],
user_id = self.request.user.id,
profile_id = self.request.user.get_profile().id,
title = self.cleaned_data['title'],
)
# create url
current_site = get_current_site(self.request)
build.url = "http://%s%s" % (current_site.domain, build.topic_url)
# Try to parse the scale
pattern = re.compile(r'1[:/](\d{1,4})')
match = re.search(pattern, build.title)
if match:
build.scale = match.group(1)
# see if we can match a brand...
bits = build.title.split()
for bit in bits:
brands = Brand.objects.filter(name__iexact=bit)
if brands:
build.brand = brands[0]
return build
示例2: _create_results
def _create_results(self, branch, platform, builder, test_name, values, timestamps=None):
results = []
for i, value in enumerate(values):
build = Build(branch=branch, platform=platform, builder=builder,
buildNumber=i, revision=100 + i, timestamp=timestamps[i] if timestamps else datetime.now())
build.put()
result = TestResult(name=test_name, build=build, value=value)
result.put()
results.append(result)
return results
示例3: lastclobber
def lastclobber():
"Get the max/last clobber time for a particular builddir and branch."
session = g.db.session(DB_DECLARATIVE_BASE)
now = int(time.time())
branch = request.args.get('branch')
slave = request.args.get('slave')
builddir = request.args.get('builddir')
buildername = request.args.get('buildername')
# TODO: Move the builds update to a separate endpoint (requires client changes)
build = Build.as_unique(
session,
branch=branch,
builddir=builddir,
buildername=buildername,
)
# Always force the time to update
build.last_build_time = now
session.add(build)
session.commit()
max_ct = session.query(ClobberTime).filter(
ClobberTime.builddir == builddir,
ClobberTime.branch == branch,
# a NULL slave value signifies all slaves
or_(ClobberTime.slave == slave, ClobberTime.slave == None) # noqa
).order_by(desc(ClobberTime.lastclobber)).first()
if max_ct:
# The client parses this result by colon as:
# builddir, lastclobber, who = urlib2.open.split(':')
# as such it's important for this to be plain text and have
# no extra colons within the field values themselves
return "{}:{}:{}\n".format(max_ct.builddir, max_ct.lastclobber, max_ct.who)
return ""
示例4: execute
def execute():
build = Build.get_by_key_name(key_name)
if build:
return self._output('The build at %s already exists for %s' % (str(timestamp), builder.name))
return Build(branch=branch, platform=platform, builder=builder, buildNumber=buildNumber,
timestamp=timestamp, revision=revision, key_name=key_name).put()
示例5: post
def post(self):
self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
log_id = int(self.request.get('id', 0))
log = ReportLog.get_by_id(log_id)
if not log or not log.commit:
self.response.out.write("Not processed")
return
branch = log.branch()
platform = log.platform()
build = Build.get_or_insert_from_log(log)
for test_name, result_value in log.results().iteritems():
test = Test.update_or_insert(test_name, branch, platform)
result = TestResult.get_or_insert_from_parsed_json(test_name, build, result_value)
runs = Runs.get_by_objects(branch, platform, test)
regenerate_runs = True
if runs:
runs.update_incrementally(build, result)
regenerate_runs = False
schedule_runs_update(test.id, branch.id, platform.id, regenerate_runs)
log = ReportLog.get(log.key())
log.delete()
# We need to update dashboard and manifest because they are affected by the existance of test results
schedule_dashboard_update()
schedule_manifest_update()
self.response.out.write('OK')
示例6: get_builds
def get_builds():
#gets all builds in DB using .find() method
builds = []
for build in Build.find():
builds.append(build.to_json())
#returns data for all builds
return json.dumps(builds), 200
示例7: get
def get(self):
self.response.headers['Content-Type'] = 'application/json; charset=utf-8'
try:
testId = int(self.request.get('id', 0))
branchId = int(self.request.get('branchid', 0))
platformId = int(self.request.get('platformid', 0))
except TypeError:
# FIXME: Output an error here
testId = 0
branchId = 0
platformId = 0
# FIXME: Just fetch builds specified by "days"
# days = self.request.get('days', 365)
cacheKey = Test.cacheKey(testId, branchId, platformId)
cache = memcache.get(cacheKey)
if cache:
self.response.out.write(cache)
return
builds = Build.all()
builds.filter('branch =', modelFromNumericId(branchId, Branch))
builds.filter('platform =', modelFromNumericId(platformId, Platform))
test = modelFromNumericId(testId, Test)
testName = test.name if test else None
test_runs = []
averages = {}
values = []
timestamps = []
for build in builds:
results = TestResult.all()
results.filter('name =', testName)
results.filter('build =', build)
for result in results:
builderId = build.builder.key().id()
posixTimestamp = mktime(build.timestamp.timetuple())
test_runs.append([result.key().id(),
[build.key().id(), build.buildNumber, build.revision],
posixTimestamp, result.value, 0, [], builderId])
# FIXME: Calculate the average; in practice, we wouldn't have more than one value for a given revision
averages[build.revision] = result.value
values.append(result.value)
timestamps.append(posixTimestamp)
result = json.dumps({
'test_runs': test_runs,
'averages': averages,
'min': min(values) if values else None,
'max': max(values) if values else None,
'date_range': [min(timestamps), max(timestamps)] if timestamps else None,
'stat': 'ok'})
self.response.out.write(result)
memcache.add(cacheKey, result)
示例8: blame
def blame():
bad_people = dict()
for build in Build.find():
if build.status == 2:
if bad_people.get(build.author.name, None) is None:
bad_people[build.author.name] = 1
else:
bad_people[build.author.name] += 1
return jsonify(bad_people)
示例9: _generate_runs
def _generate_runs(branch, platform, test_name):
builds = Build.all()
builds.filter('branch =', branch)
builds.filter('platform =', platform)
for build in builds:
results = TestResult.all()
results.filter('name =', test_name)
results.filter('build =', build)
for result in results:
yield build, result
raise StopIteration
示例10: get_build
def get_build(build_id):
#looks up the build by its id in the database
#the variable build_id is passed in the url
try:
build = Build.get_from_id(ObjectId(build_id))
except Exception:
return jsonify(error="Invalid Build ID")
if build is None:
return jsonify(error="Invalid Build ID")
#looks at the status of the build
#returns jsonify(status of build)
return (build.to_json(), 200)
示例11: rebuild
def rebuild():
#takes build ID as parameter
id = request.form.get('build_id', None)
try:
build = Build.get_from_id(ObjectId(id))
except Exception:
return jsonify(error="Invalid Build ID")
if build is None:
return jsonify(error="Invalid Build ID")
#looks up a build by that ID
#rebuilds build to see if it fails new tests
api.queue.add_build(build)
if (api.worker is None or api.worker.current_build is None):
api.worker = WorkerThread(api.queue, api.config, connection)
api.worker.start()
return jsonify(success=True, id=id)
示例12: test_get_or_insert_from_log
def test_get_or_insert_from_log(self):
branch, platform, builder = _create_some_builder()
timestamp = datetime.now().replace(microsecond=0)
log = ReportLog(timestamp=timestamp, headers='some headers',
payload='{"branch": "some-branch", "platform": "some-platform", "builder-name": "some-builder",' +
'"build-number": 123, "webkit-revision": 456, "timestamp": %d}' % int(mktime(timestamp.timetuple())))
self.assertThereIsNoInstanceOf(Build)
build = Build.get_or_insert_from_log(log)
self.assertTrue(build)
self.assertEqual(build.branch.key(), branch.key())
self.assertEqual(build.platform.key(), platform.key())
self.assertEqual(build.builder.key(), builder.key())
self.assertEqual(build.buildNumber, 123)
self.assertEqual(build.revision, 456)
self.assertEqual(build.chromiumRevision, None)
self.assertEqual(build.timestamp, timestamp)
self.assertOnlyInstance(build)
示例13: _create_build
def _create_build(branch, platform, builder, key_name='some-build'):
build_key = Build(key_name=key_name, branch=branch, platform=platform, builder=builder,
buildNumber=1, revision=100, timestamp=datetime.now()).put()
return Build.get(build_key)
示例14: create_build
def create_build(build_number, revision):
timestamp = datetime.now().replace(microsecond=0)
build = Build(branch=branch, platform=platform, builder=builder, buildNumber=build_number,
revision=revision, timestamp=timestamp)
build.put()
return build