Skip to content

Instantly share code, notes, and snippets.

@danieltahara
Created August 8, 2013 23:38
Show Gist options
  • Save danieltahara/6189848 to your computer and use it in GitHub Desktop.
Save danieltahara/6189848 to your computer and use it in GitHub Desktop.
Diff for baseline changes + other edits
diff --git a/aarunner/src/aarunner.coffee b/aarunner/src/aarunner.coffee
index fa7cd35..78a4c9b 100755
--- a/aarunner/src/aarunner.coffee
+++ b/aarunner/src/aarunner.coffee
@@ -74,15 +74,15 @@ if argv.help
randomName = () ->
[new Date().getTime(), '-', (Math.random() * 0x100000000 + 1).toString(36)].join ''
-determineRev = (rev) ->
+determineRev = (vcs, rev) ->
if rev? then return rev
- console.log "TODO(jeandenis): implement determineRev"
- process.exit 3
+ else
+ return vcs.getCurrentRev()
-determineBaseline = (baseline) ->
+determineBaselineRev = (vcs, rev, baseline) ->
if baseline? or baseline == 0 then return baseline
- console.log "TODO(jeandenis): implement determineBaseline"
- process.exit 4
+ else
+ return vcs.getBaselineRev(rev)
aacapture = (tmpDir, server, crawlerDataPath) ->
shelljs.env['AA_CAPTURE_PATH'] = tmpDir
@@ -266,14 +266,12 @@ createDiffsetAndUploadScreenshots = (options, revMetadata, baselineMetadata, fin
aaserver =
run_post: (server, revUri, testRevisionUri, creatorUri, testSuite, testName, callback) ->
- # TODO(jeandenis):
- # handle optional arguments testSuite and testName
request.post(serverRoute(server, "/run"), {
json: {
revision_uri: revUri,
test_revision_uri: testRevisionUri,
- # test_suite: testSuite,
- # test_name: testName,
+ test_suite: testSuite,
+ test_name: testName,
creator_uri: creatorUri,
}}, (error, response, body) ->
callback error, body)
@@ -299,12 +297,13 @@ aaserver =
callback error, body)
latest_run_get: (server, revUri, testRevisionUri, creatorUri, testSuite, callback) ->
- # TODO(jeandenis):
- # handle optional arguments cretorUri and testSuite
console.log "latest_run_get", revUri, testRevisionUri, creatorUri, testSuite
request(serverRoute(server, "/latest_run"), {
json: {
revision_uri: revUri,
+ test_suite: test_suite,
+ # TODO: pass test_name
+ creatorUri: creatorUri,
test_revision_uri: testRevisionUri,
}}, (error, response, body) ->
if error then callback error
@@ -391,9 +390,6 @@ class VersionControlSystem
else
throw new Error "Cannot change workspace. Use -u to allow aarunner to change workspaces."
-# hg log -r ancestor(rev1, rev2)
-# hg log -r "parents(min(branch(uploadviewv2)))"
-# hg log -r "max(ancestors(branch(uploadviewv2)) and not branch(uploadviewv2))"
class Mercurial extends VersionControlSystem
constructor: () ->
super()
@@ -405,6 +401,12 @@ class Mercurial extends VersionControlSystem
return result.output.slice 0, result.output.length-1
else throw new Error "Cannot get current mercurial revision: [" +
result.code + "] " + result.output
+ getBaselineRev: (rev) ->
+ if !result.code
+ return result.output.split("\n")[0].split(":")[-1]
+ else thrown new Error "Could not find baseline mercurial revision: [" +
+ result.code + "] " + result.output
+
_hasUncommittedChanges: (rev) ->
rev[rev.length-1] == '+'
changeRev: (rev) ->
@@ -430,9 +432,9 @@ options.creatorUri = "jeandenis@dropbox.com" # FIXME(jeandenis)
options.testRevisionUri = "1" # FIXME(jeandenis)
options.crawlerDataPath = process.env.AA_CRAWLER_DATA_PATH # FIXME(jeandenis)
options.testSuite = null # FIXME(jeandenis)
-options.rev = determineRev argv.r
-options.baseline = determineBaseline argv.b
vcs = options.versionControlSystem = new Mercurial()
+options.rev = determineCurrentRev vcs argv.r
+options.baseline = determineBaselineRev vcs options.rev argv.b
#options.noServer = argv['no_server'] # TODO(jeandenis)
options.cServer = argv.s
options.updateWorkspace = argv.u
diff --git a/server/server.py b/server/server.py
index ddb56ca..fc2182d 100644
--- a/server/server.py
+++ b/server/server.py
@@ -155,8 +155,10 @@ def create_run():
run.info.revision_uri = data.get('revision_uri')
run.info.creator_uri = data.get('creator_uri')
run.info.test_revision_uri = data.get('test_revision_uri')
- run.info.test_suite = data.get('test_suite')
- run.info.test_name = data.get('test_name')
+ if data.get('test_suite') is not None:
+ run.info.test_suite = data.get('test_suite')
+ if data.get('test_name') is not None:
+ run.info.test_name = data.get('test_name')
run.info.created = datetime.now()
run.screenshot_gids = []
run.validate()
@@ -215,16 +217,16 @@ def get_latest_run():
query = {
'info.finalized': { '$exists': True},
'info.revision_uri': data['revision_uri']}
- if 'test_suite' in data:
+ if 'test_suite' in data and data['test_suite'] is not None:
query['info.test_suite'] = data['test_suite']
- if 'test_name' in data:
+ if 'test_name' in data and data['test_name'] is not None:
query['$or'] = [
{'info.test_name' : {'$exists' : False}},
{'info.test_name' : data['test_name']}
]
- if 'creator_uri' in data:
+ if 'creator_uri' in data and data['creator_uri'] is not None:
query['info.creator_uri'] = data['creator_uri']
- if 'test_revision_uri' in data:
+ if 'test_revision_uri' in data and data['test_revision_uri'] is not None:
query['info.test_revision_uri'] = data['test_revision_uri']
cursor = connection.TestRun.find(query)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment