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'])