예제 #1
0
    def read_all_revisions(self, dist):
        """Read revision from egg directory."""

        for egg_info_dir in [os.path.join(dist.location, 'EGG-INFO'),
                             os.path.join(dist.location, '%s.egg-info' % dist.project_name)]:
            all_revs_fname = os.path.join(egg_info_dir, 'allrevisions.txt')
            if os.path.exists(all_revs_fname):
                revisions = read_allrevisions_file(all_revs_fname)
                for rev_data in revisions:
                    if pkg_resources.safe_name(rev_data[0]) == dist.project_name:
                        return tuple(rev_data)  # name,version,url,rev
        return None
예제 #2
0
 def read_all_revisions(self, dist):
     """Read revision from egg directory."""
     from path import path
     dist_dir = path(dist.location)
     for egg_info_dir in [dist_dir / 'EGG-INFO',
                          dist_dir / '{}.egg-info'.format(dist.project_name)]:
         all_revs_fname = egg_info_dir / 'allrevisions.txt'
         if all_revs_fname.exists():
             revisions = read_allrevisions_file(all_revs_fname)
             for rev_data in revisions:
                 if pkg_resources.safe_name(rev_data[0]) == dist.project_name:
                     return tuple(rev_data)  # name,version,url,rev
     return None
예제 #3
0
def test_egg_revisions(pypi_chishop, svn_repo, workspace, pytestconfig):
    #pypi_chishop.restore()
    package1_metadata = dict(
        version='1.2.3',
        )

    package2_metadata = dict(
        version='4.5.6',
        install_requires='\n'.join(['acme.er_package1==1.2.3']),
        )

    package3_metadata = dict(
        version='7.8.9',
        install_requires='\n'.join(['acme.er_package2==4.5.6']),
        )

    with pkglib_testing.pypi.create_pkg(pypi_chishop, svn_repo, 'acme.er_package1',
                                     metadata=package1_metadata, dev=False) as pkg1:
        with pkglib_testing.pypi.create_pkg(pypi_chishop, svn_repo, 'acme.er_package2',
                                         metadata=package2_metadata, dev=False) as pkg2:
            with PkgTemplate(name='acme.package3', repo_base=svn_repo.uri, metadata=package3_metadata) as pkg3:
                pkg3.run('%s/bin/easy_install -i %s/simple acme.er_package2' \
                             % (pkg3.virtualenv, pypi_chishop.uri))

                egg_info_dir = pkg3.virtualenv + \
                    '/lib/python2.6/site-packages/acme.er_package2-4.5.6-py2.6.egg/EGG-INFO'
                all_revisions_fname = os.path.join(egg_info_dir, 'allrevisions.txt')

                assert os.path.isfile(all_revisions_fname)
                name_to_revno = {}

                for rev_data in read_allrevisions_file(all_revisions_fname):
                    # name => revision
                    name_to_revno[rev_data[0]] = str(rev_data[3])

                assert len(name_to_revno) == 2
                assert name_to_revno['acme.er_package1'] == _svn_info_revision(pkg3, pkg1.workspace, 'acme.er_package1')
                assert name_to_revno['acme.er_package2'] == _svn_info_revision(pkg3, pkg2.workspace, 'acme.er_package2')