Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(857)

Unified Diff: third_party/WebKit/LayoutTests/imported/wpt/check_stability.py

Issue 2547023002: Import wpt@3c8896ae408c8fd594979da7c99970029e7856a7 (Closed)
Patch Set: Modify TestExpectations or download new baselines for tests. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py b/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
index 7b7072121587e0418508830768c854c487b4ebdf..a083876fb4d74ff6a43b1a7e411e696ba0031934 100644
--- a/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
+++ b/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
@@ -89,13 +89,14 @@ class TravisFold(object):
class GitHub(object):
- def __init__(self, org, repo, token):
+ def __init__(self, org, repo, token, browser):
self.token = token
self.headers = {"Accept": "application/vnd.github.v3+json"}
self.auth = (self.token, "x-oauth-basic")
self.org = org
self.repo = repo
self.base_url = "https://api.github.com/repos/%s/%s/" % (org, repo)
+ self.browser = browser
def _headers(self, headers):
if headers is None:
@@ -117,6 +118,19 @@ class GitHub(object):
resp.raise_for_status()
return resp
+ def patch(self, url, data, headers=None):
+ logger.debug("PATCH %s" % url)
+ if data is not None:
+ data = json.dumps(data)
+ resp = requests.patch(
+ url,
+ data=data,
+ headers=self._headers(headers),
+ auth=self.auth
+ )
+ resp.raise_for_status()
+ return resp
+
def get(self, url, headers=None):
logger.debug("GET %s" % url)
resp = requests.get(
@@ -128,8 +142,19 @@ class GitHub(object):
return resp
def post_comment(self, issue_number, body):
- url = urljoin(self.base_url, "issues/%s/comments" % issue_number)
- return self.post(url, {"body": body})
+ user = self.get(urljoin(self.base_url, "/user")).json()
+ issue_comments_url = urljoin(self.base_url, "issues/%s/comments" % issue_number)
+ comments = self.get(issue_comments_url).json()
+ title_line = "# %s #" % self.browser.title()
+ data = {"body": body}
+ for comment in comments:
+ if (comment["user"]["login"] == user["login"] and
+ comment["body"].startswith(title_line)):
+ comment_url = urljoin(self.base_url, "issues/comments/%s" % comment["id"])
+ self.patch(comment_url, data)
+ break
+ else:
+ self.post(issue_comments_url, data)
def releases(self):
url = urljoin(self.base_url, "releases/latest")
@@ -167,7 +192,7 @@ class Firefox(Browser):
def install(self):
call("pip", "install", "-r", "w3c/wptrunner/requirements_firefox.txt")
- resp = get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-52.0a1.en-US.linux-x86_64.tar.bz2")
+ resp = get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-53.0a1.en-US.linux-x86_64.tar.bz2")
untar(resp.raw)
if not os.path.exists("profiles"):
@@ -244,7 +269,13 @@ def get(url):
def call(*args):
logger.debug("%s" % " ".join(args))
- return subprocess.check_output(args)
+ try:
+ return subprocess.check_output(args)
+ except subprocess.CalledProcessError as e:
+ logger.critical("%s exited with return code %i" %
+ (e.cmd, e.returncode))
+ logger.critical(e.output)
+ raise
def get_git_cmd(repo_path):
@@ -288,7 +319,7 @@ def unzip(fileobj):
def setup_github_logging(args):
gh_handler = None
if args.comment_pr:
- github = GitHub("w3c", "web-platform-tests", args.gh_token)
+ github = GitHub("w3c", "web-platform-tests", args.gh_token, args.browser)
try:
pr_number = int(args.comment_pr)
except ValueError:

Powered by Google App Engine
This is Rietveld 408576698