Пример #1
0
def start(buildout):
    global file_name

    # normalise version case and make sure that this is stored in
    # buildout['versions']
    versions_section = buildout['buildout'].get('versions')
    current_versions = buildout.get(versions_section, {})
    for key,value in current_versions.items():
        lower_key = key.lower()
        if lower_key != key:
            del current_versions[key]  # optional, really
            current_versions[lower_key] = value

    python_version = current_versions.get('python')
    if python_version and python_version not in sys.version:
        raise IncompatibleVersionError(
            "python version specified not found in sys.version:",
            python_version
            )
        
    # Apply the new versions in the Installer.  Whether this is needed
    # depends on the loading order of extensions.
    default_versions(current_versions)

    # patch methods
    Installer._get_dist = _get_dist
    Installer._constrain = _constrain

    # record file name, if needed
    if 'buildout_versions_file' in buildout['buildout']:
        file_name = buildout['buildout']['buildout_versions_file']
 def setUp(self):
     self.buildout_config = {
         'buildout': {'versions': 'versions'},
         'versions': {'A-Package': '1.0'},
         }
     self.i = Installer(versions=self.buildout_config['versions'])
     self.logging = LogCapture('zc.buildout.easy_install')
     # Run the extension, which includes installing our patches.
     start(self.buildout_config)
     # Some other extension, like mr.developer, may run after us
     # and call 'default_versions' after changing something to the
     # buildout config versions.  We should be fine with that.
     self.buildout_config['versions']['extra-lower'] = '4.2'
     self.buildout_config['versions']['ExtraUpper'] = '4.2'
     default_versions(self.buildout_config['versions'])