def test_source_packages(): for ext in ('.tar.gz', '.tar', '.tgz', '.zip', '.tar.bz2'): sl = SourcePackage('a_p_r-3.1.3' + ext) assert sl._name == 'a_p_r' assert sl.name == 'a-p-r' assert sl.raw_version == '3.1.3' assert sl.version == parse_version(sl.raw_version) for req in ('a_p_r', 'a_p_r>2', 'a_p_r>3', 'a_p_r>=3.1.3', 'a_p_r==3.1.3', 'a_p_r>3,<3.5'): assert sl.satisfies(req) assert sl.satisfies(Requirement.parse(req)) for req in ('foo', 'a_p_r==4.0.0', 'a_p_r>4.0.0', 'a_p_r>3.0.0,<3.0.3', 'a==3.1.3'): assert not sl.satisfies(req) sl = SourcePackage('python-dateutil-1.5.tar.gz') assert sl.name == 'python-dateutil' assert sl.raw_version == '1.5' with temporary_dir() as td: dateutil_base = 'python-dateutil-1.5' dateutil = '%s.zip' % dateutil_base with contextlib.closing(ZipFile(os.path.join(td, dateutil), 'w')) as zf: zf.writestr(os.path.join(dateutil_base, 'file1.txt'), 'junk1') zf.writestr(os.path.join(dateutil_base, 'file2.txt'), 'junk2') sl = SourcePackage('file://' + os.path.join(td, dateutil), opener=Web()) with temporary_dir() as td2: sl.fetch(location=td2) print(os.listdir(td2)) assert set(os.listdir(os.path.join(td2, dateutil_base))) == set(['file1.txt', 'file2.txt'])
def test_package_fetch_without_location(): with temporary_dir() as td: dateutil_base = 'python-dateutil-1.5' dateutil = '%s.zip' % dateutil_base with contextlib.closing(ZipFile(os.path.join(td, dateutil), 'w')) as zf: zf.writestr(os.path.join(dateutil_base, 'file1.txt'), 'junk1') zf.writestr(os.path.join(dateutil_base, 'file2.txt'), 'junk2') sl = SourcePackage('file://' + os.path.join(td, dateutil), opener=Web()) dest = sl.fetch() assert set(os.listdir(dest)) == set(['file1.txt', 'file2.txt'])