Beispiel #1
0
def get_newest_release(package_name, index=None):
    """Get the newest release version for a package from pypi.
    """
    installer = Installer(index=index)
    requirement = Requirement.parse(package_name)
    dist = installer._obtain(requirement)
    if dist:
        return dist.version
    else:
        return None
 def _get_installer(self):
     from zc.buildout.easy_install import Installer
     import sys
     dest = self.buildout['buildout']['eggs-directory']
     links = self.buildout['buildout'].get('find-links', '').split()
     index = self.buildout['buildout'].get('index')
     always_unzip = None
     path = [self.buildout['buildout']['develop-eggs-directory']]
     allow_hosts = ('*', )
     newest = True
     versions = None
     use_dependency_links = False
     check_picked = True
     installer = Installer(dest,
                           links,
                           index,
                           sys.executable,
                           always_unzip,
                           path,
                           newest,
                           versions,
                           use_dependency_links,
                           allow_hosts=allow_hosts,
                           check_picked=check_picked)
     return installer
class TestStartExtension(TestCase):
    """Test the start extension.
    """

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

    def tearDown(self):
        self.logging.uninstall()

    def _check(self, requirement, expected):
        parsed_req = tuple(parse_requirements(requirement))[0]
        result = self.i._constrain(parsed_req)
        self.failUnless(isinstance(result, Requirement))
        compare(expected, str(result))

    def test_normal(self):
        self._check('A-Package', 'A-Package==1.0')
        self.logging.check()

    def test_lowercase(self):
        self._check('a_package', 'a-package==1.0')
        self.logging.check()

    def test_uppercase(self):
        self._check('A_PACKAGE', 'A-PACKAGE==1.0')
        self.logging.check()

    def test_sanity(self):
        # A non-pinned package should still be reported as such.
        self._check('B_Package', 'B-Package')
        self.logging.check()

    def test_extra(self):
        # A pin added after our extension has run is picked up as well.
        self._check('extra-lower', 'extra-lower==4.2')
        self.logging.check()

    def test_extra_lower(self):
        # A pin added after our extension has run is not lowercased
        # though.
        self._check('ExtraUpper', 'ExtraUpper')
        self.logging.check()
 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'])