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

Unified Diff: chrome/common/extensions/docs/server2/PRESUBMIT.py

Issue 14247024: Devserver: allow SubversionFileSystem to be pinned to a specific rev on construction (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 7 years, 7 months 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
« no previous file with comments | « no previous file | chrome/common/extensions/docs/server2/app.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/docs/server2/PRESUBMIT.py
diff --git a/chrome/common/extensions/docs/server2/PRESUBMIT.py b/chrome/common/extensions/docs/server2/PRESUBMIT.py
index dc3db5d5ae20df05cc79f156f13ce8d9f99e0f70..addfeebe66411fd3d2f9eca0146a3ce55f8116a3 100644
--- a/chrome/common/extensions/docs/server2/PRESUBMIT.py
+++ b/chrome/common/extensions/docs/server2/PRESUBMIT.py
@@ -12,35 +12,88 @@ for more details about the presubmit API built into gcl.
# third_party directory.
import os
import sys
-SYS_PATH = sys.path[:]
-try:
- SERVER2_PATH = os.path.join('chrome',
- 'common',
- 'extensions',
- 'docs',
- 'server2')
- if os.sep + 'src' in os.getcwd():
- # Is 'src' is in the path, we can find the server2/ directory from there.
- sys.path.insert(0, os.path.join(os.getcwd().rsplit(os.sep + 'src', 1)[0],
- 'src',
- SERVER2_PATH))
- else:
- # Otherwise, we have to guess we're in the server2/ directory.
- sys.path.insert(0, '.')
- import build_server
- build_server.main()
-finally:
- sys.path = SYS_PATH
WHITELIST = [ r'.+_test.py$' ]
# The integration tests are selectively run from the PRESUBMIT in
# chrome/common/extensions.
BLACKLIST = [ r'integration_test.py$' ]
+def _BuildServer(input_api):
+ try:
+ sys.path.insert(0, input_api.PresubmitLocalPath())
+ import build_server
+ build_server.main()
+ finally:
+ sys.path.pop(0)
+
+def _ImportAppYamlHelper(input_api):
+ try:
+ sys.path.insert(0, input_api.PresubmitLocalPath())
+ from app_yaml_helper import AppYamlHelper
+ return AppYamlHelper
+ finally:
+ sys.path.pop(0)
+
+def _WarnIfAppYamlHasntChanged(input_api, output_api):
+ app_yaml_path = os.path.join(input_api.PresubmitLocalPath(), 'app.yaml')
+ if app_yaml_path in input_api.AbsoluteLocalPaths():
+ return []
+ return [output_api.PresubmitPromptOrNotify('''
+**************************************************
+CHANGE DETECTED IN SERVER2 WITHOUT APP.YAML UPDATE
+**************************************************
+Maybe this is ok? Follow this simple guide:
+
+Q: Does this change any data that might get stored?
+ * Did you add/remove/update a field to a data source?
+ * Did you add/remove/update some data that gets sent to templates?
+ * Is this change to support a new feature in the templates?
+ * Does this change include changes to templates?
+Yes? Bump the middle version, i.e. 2-5-2 -> 2-6-2.
+ THIS WILL CAUSE THE CURRENTLY RUNNING SERVER TO STOP UPDATING.
+ PUSH THE NEW VERSION ASAP.
+No? Continue.
+
+Q: Is this a non-trivial change to the server?
+Yes? Bump the end version.
+ Unlike above, the server will *not* stop updating.
+No? Are you sure? How much do you bet? This can't be rolled back...
+
+Q: Is this a spelling correction? New test? Better comments?
+Yes? Ok fine. Ignore this warning.
+No? I guess this presubmit check doesn't work.
+''')]
+
+def _CheckYamlConsistency(input_api, output_api):
+ app_yaml_path = os.path.join(input_api.PresubmitLocalPath(), 'app.yaml')
+ cron_yaml_path = os.path.join(input_api.PresubmitLocalPath(), 'cron.yaml')
+ if not (app_yaml_path in input_api.AbsoluteLocalPaths() or
+ cron_yaml_path in input_api.AbsoluteLocalPaths()):
+ return []
+
+ AppYamlHelper = _ImportAppYamlHelper(input_api)
+ app_yaml_version = AppYamlHelper.ExtractVersion(
+ input_api.ReadFile(app_yaml_path))
+ cron_yaml_version = AppYamlHelper.ExtractVersion(
+ input_api.ReadFile(cron_yaml_path), key='target')
+
+ if app_yaml_version == cron_yaml_version:
+ return []
+ return [output_api.PresubmitError(
+ 'Versions of app.yaml (%s) and cron.yaml (%s) must match' % (
+ app_yaml_version, cron_yaml_version))]
+
+def _RunPresubmit(input_api, output_api):
+ _BuildServer(input_api)
+ return (
+ _WarnIfAppYamlHasntChanged(input_api, output_api) +
+ _CheckYamlConsistency(input_api, output_api) +
+ input_api.canned_checks.RunUnitTestsInDirectory(
+ input_api, output_api, '.', whitelist=WHITELIST, blacklist=BLACKLIST)
+ )
+
def CheckChangeOnUpload(input_api, output_api):
- return input_api.canned_checks.RunUnitTestsInDirectory(
- input_api, output_api, '.', whitelist=WHITELIST, blacklist=BLACKLIST)
+ return _RunPresubmit(input_api, output_api)
def CheckChangeOnCommit(input_api, output_api):
- return input_api.canned_checks.RunUnitTestsInDirectory(
- input_api, output_api, '.', whitelist=WHITELIST, blacklist=BLACKLIST)
+ return _RunPresubmit(input_api, output_api)
« no previous file with comments | « no previous file | chrome/common/extensions/docs/server2/app.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698