chrome/browser/resources/vr/assets/PRESUBMIT.py
def CheckVersionAndAssetParity(input_api, output_api):
  """Checks that
  - the version was upraded if assets files were changed,
  - the version was not downgraded,
  - both the google_chrome and the chromium assets have the same files.
  """
  sys.path.append(input_api.PresubmitLocalPath())
  import parse_version

  old_version = None
  new_version = None
  changed_assets = False
  changed_version = False
  changed_component_list = False
  changed_asset_files = {'google_chrome': [], 'chromium': []}
  for file in input_api.AffectedFiles():
    basename = input_api.os_path.basename(file.LocalPath())
    extension = input_api.os_path.splitext(basename)[1][1:].strip().lower()
    basename_without_extension = input_api.os_path.splitext(basename)[
        0].strip().lower()
    if extension == 'sha1':
      basename_without_extension = input_api.os_path.splitext(
          basename_without_extension)[0]
    dirname = input_api.os_path.basename(
        input_api.os_path.dirname(file.LocalPath()))
    action = file.Action()
    if (dirname in changed_asset_files and
        extension in {'sha1', 'png', 'wav'} and action in {'A', 'D'}):
      changed_asset_files[dirname].append((action, basename_without_extension))
    if (extension == 'sha1' or basename == 'vr_assets_component_files.json'):
      changed_assets = True
    if basename == 'vr_assets_component_files.json':
      changed_component_list = True
    if basename == 'VERSION':
      changed_version = True
      old_version = parse_version.ParseVersion(file.OldContents())
      new_version = parse_version.ParseVersion(file.NewContents())

  local_version_filename = input_api.os_path.join(
      input_api.os_path.dirname(input_api.AffectedFiles()[0].LocalPath()),
      'VERSION')
  local_component_list_filename = input_api.os_path.join(
      input_api.os_path.dirname(input_api.AffectedFiles()[0].LocalPath()),
      'vr_assets_component_files.json')

  if changed_asset_files['google_chrome'] != changed_asset_files['chromium']:
    return [
        output_api.PresubmitError(
            'Must have same asset files for %s in \'%s\'.' %
            (changed_asset_files.keys(),
             input_api.os_path.dirname(
                 input_api.AffectedFiles()[0].LocalPath())))
    ]

  if changed_asset_files['google_chrome'] and not changed_component_list:
    return [
        output_api.PresubmitError(
            'Must update \'%s\' if adding/removing assets.' %
            local_component_list_filename)
    ]

  if changed_version and (not old_version or not new_version):
    return [
        output_api.PresubmitError(
            'Cannot parse version in \'%s\'.' % local_version_filename)
    ]

  version_upgraded = IsNewer(old_version, new_version)
  if changed_assets and not version_upgraded:
    return [
        output_api.PresubmitError(
            'Must increment version in \'%s\' when '
            'updating VR assets.' % local_version_filename)
    ]
  if changed_version and not version_upgraded:
    return [
        output_api.PresubmitError(
            'Must not downgrade version in \'%s\'.' % local_version_filename)
    ]

  return []
Checks that
  - the version was upraded if assets files were changed,
  - the version was not downgraded,
  - both the google_chrome and the chromium assets have the same files.
  
Checks that
the version was upraded if assets files were changed,
the version was not downgraded,
both the google_chrome and the chromium assets have the same files.
Checks that the version was upraded if assets files were changed the version was not downgraded both the google_chrome and the chromium assets have the same files .
def CheckVersionAndAssetParity(input_api, output_api):
  sys.path.append(input_api.PresubmitLocalPath())
  import parse_version
  old_version = None
  new_version = None
  changed_assets = False
  changed_version = False
  changed_component_list = False
  changed_asset_files = {'google_chrome': [], 'chromium': []}
  for file in input_api.AffectedFiles():
    basename = input_api.os_path.basename(file.LocalPath())
    extension = input_api.os_path.splitext(basename)[1][1:].strip().lower()
    basename_without_extension = input_api.os_path.splitext(basename)[
        0].strip().lower()
    if extension == 'sha1':
      basename_without_extension = input_api.os_path.splitext(
          basename_without_extension)[0]
    dirname = input_api.os_path.basename(
        input_api.os_path.dirname(file.LocalPath()))
    action = file.Action()
    if (dirname in changed_asset_files and
        extension in {'sha1', 'png', 'wav'} and action in {'A', 'D'}):
      changed_asset_files[dirname].append((action, basename_without_extension))
    if (extension == 'sha1' or basename == 'vr_assets_component_files.json'):
      changed_assets = True
    if basename == 'vr_assets_component_files.json':
      changed_component_list = True
    if basename == 'VERSION':
      changed_version = True
      old_version = parse_version.ParseVersion(file.OldContents())
      new_version = parse_version.ParseVersion(file.NewContents())
  local_version_filename = input_api.os_path.join(
      input_api.os_path.dirname(input_api.AffectedFiles()[0].LocalPath()),
      'VERSION')
  local_component_list_filename = input_api.os_path.join(
      input_api.os_path.dirname(input_api.AffectedFiles()[0].LocalPath()),
      'vr_assets_component_files.json')
  if changed_asset_files['google_chrome'] != changed_asset_files['chromium']:
    return [
        output_api.PresubmitError(
            'Must have same asset files for %s in \'%s\'.' %
            (changed_asset_files.keys(),
             input_api.os_path.dirname(
                 input_api.AffectedFiles()[0].LocalPath())))
    ]
  if changed_asset_files['google_chrome'] and not changed_component_list:
    return [
        output_api.PresubmitError(
            'Must update \'%s\' if adding/removing assets.' %
            local_component_list_filename)
    ]
  if changed_version and (not old_version or not new_version):
    return [
        output_api.PresubmitError(
            'Cannot parse version in \'%s\'.' % local_version_filename)
    ]
  version_upgraded = IsNewer(old_version, new_version)
  if changed_assets and not version_upgraded:
    return [
        output_api.PresubmitError(
            'Must increment version in \'%s\' when '
            'updating VR assets.' % local_version_filename)
    ]
  if changed_version and not version_upgraded:
    return [
        output_api.PresubmitError(
            'Must not downgrade version in \'%s\'.' % local_version_filename)
    ]
  return []
def CheckVersionAndAssetParity ( input_api , output_api ) : sys . path . append ( input_api . PresubmitLocalPath ( ) ) import parse_version old_version = None new_version = None changed_assets = False changed_version = False changed_component_list = False changed_asset_files = { 'google_chrome' : [ ] , 'chromium' : [ ] } for file in input_api . AffectedFiles ( ) : basename = input_api . os_path . basename ( file . LocalPath ( ) ) extension = input_api . os_path . splitext ( basename ) [ 1 ] [ 1 : ] . strip ( ) . lower ( ) basename_without_extension = input_api . os_path . splitext ( basename ) [ 0 ] . strip ( ) . lower ( ) if extension == 'sha1' : basename_without_extension = input_api . os_path . splitext ( basename_without_extension ) [ 0 ] dirname = input_api . os_path . basename ( input_api . os_path . dirname ( file . LocalPath ( ) ) ) action = file . Action ( ) if ( dirname in changed_asset_files and extension in { 'sha1' , 'png' , 'wav' } and action in { 'A' , 'D' } ) : changed_asset_files [ dirname ] . append ( ( action , basename_without_extension ) ) if ( extension == 'sha1' or basename == 'vr_assets_component_files.json' ) : changed_assets = True if basename == 'vr_assets_component_files.json' : changed_component_list = True if basename == 'VERSION' : changed_version = True old_version = parse_version . ParseVersion ( file . OldContents ( ) ) new_version = parse_version . ParseVersion ( file . NewContents ( ) ) local_version_filename = input_api . os_path . join ( input_api . os_path . dirname ( input_api . AffectedFiles ( ) [ 0 ] . LocalPath ( ) ) , 'VERSION' ) local_component_list_filename = input_api . os_path . join ( input_api . os_path . dirname ( input_api . AffectedFiles ( ) [ 0 ] . LocalPath ( ) ) , 'vr_assets_component_files.json' ) if changed_asset_files [ 'google_chrome' ] != changed_asset_files [ 'chromium' ] : return [ output_api . PresubmitError ( 'Must have same asset files for %s in \'%s\'.' % ( changed_asset_files . keys ( ) , input_api . os_path . dirname ( input_api . AffectedFiles ( ) [ 0 ] . LocalPath ( ) ) ) ) ] if changed_asset_files [ 'google_chrome' ] and not changed_component_list : return [ output_api . PresubmitError ( 'Must update \'%s\' if adding/removing assets.' % local_component_list_filename ) ] if changed_version and ( not old_version or not new_version ) : return [ output_api . PresubmitError ( 'Cannot parse version in \'%s\'.' % local_version_filename ) ] version_upgraded = IsNewer ( old_version , new_version ) if changed_assets and not version_upgraded : return [ output_api . PresubmitError ( 'Must increment version in \'%s\' when ' 'updating VR assets.' % local_version_filename ) ] if changed_version and not version_upgraded : return [ output_api . PresubmitError ( 'Must not downgrade version in \'%s\'.' % local_version_filename ) ] return [ ]
Checks that
 the version was upraded if assets files were changed,
 the version was not downgraded,
 both the google_chrome and the chromium assets have the same files.
Checks that the version was upraded if assets files were changed the version was not downgraded both the google_chrome and the chromium assets have the same files .
"""Checks that
  - the version was upraded if assets files were changed,
  - the version was not downgraded,
  - both the google_chrome and the chromium assets have the same files.
  """
input_api
output_api