aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pym/gentoolkit/test/eclean/creator.py')
-rw-r--r--pym/gentoolkit/test/eclean/creator.py388
1 files changed, 210 insertions, 178 deletions
diff --git a/pym/gentoolkit/test/eclean/creator.py b/pym/gentoolkit/test/eclean/creator.py
index da5123e..7c47cf2 100644
--- a/pym/gentoolkit/test/eclean/creator.py
+++ b/pym/gentoolkit/test/eclean/creator.py
@@ -12,211 +12,242 @@ import random
import gentoolkit.pprinter as pp
from portage import _encodings, _unicode_encode
-__version__= "0.0.1"
+__version__ = "0.0.1"
__author__ = "Brian Dolbec"
__email__ = "brian.dolbec@gmail.com"
-dir_mode = int('0774', 8)
-file_mode = int('0644', 8)
+dir_mode = int("0774", 8)
+file_mode = int("0644", 8)
def make_dir(path):
- """create the directory at path
+ """create the directory at path
- @param path: full pathname to create
- capable of multiple intermediate directory creations.
- Will Error and exit if the target dir already exits"""
- try:
- os.makedirs(path, dir_mode)
- except EnvironmentError as er:
- print( pp.error("Error creating path:%s" %path), file=sys.stderr)
- print( pp.error("Error: %s" %str(er), file=sys.stderr))
- sys.exit(1)
+ @param path: full pathname to create
+ capable of multiple intermediate directory creations.
+ Will Error and exit if the target dir already exits"""
+ try:
+ os.makedirs(path, dir_mode)
+ except EnvironmentError as er:
+ print(pp.error("Error creating path:%s" % path), file=sys.stderr)
+ print(pp.error("Error: %s" % str(er), file=sys.stderr))
+ sys.exit(1)
def make_dist(path, files, clean_dict=None):
- """Creates a small fake distfiles/binpkg directory @path populated
- with generated files of small random sizes using real names from
- the files list. udates the clean_dict with fullpathname.
-
- @param path: the path to create the distfiles directory
- @param files: list of file names to populate "path" with
- @param clean_dict: dict of {file-key:[path/file-key,],}
- that will be updated with full file-path-names
- """
- make_dir(path)
- for file_ in files:
- size = random.randint(1000,5000)
- data = "0" * size
- filepath = os.path.join(path, file_)
- with open(_unicode_encode(filepath, encoding=_encodings['fs']), 'w', file_mode,
- encoding=_encodings['content']) as new_file:
- new_file.write(data)
- if file_ not in clean_dict:
- # it is included in a multifile target
- continue
- elif clean_dict[file_] == []:
- clean_dict[file_] = filepath
- else:
- file_list = clean_dict[file_]
- for key in range(len(file_list)):
- file_list[key] = os.path.join(path, file_list[key])
+ """Creates a small fake distfiles/binpkg directory @path populated
+ with generated files of small random sizes using real names from
+ the files list. udates the clean_dict with fullpathname.
+
+ @param path: the path to create the distfiles directory
+ @param files: list of file names to populate "path" with
+ @param clean_dict: dict of {file-key:[path/file-key,],}
+ that will be updated with full file-path-names
+ """
+ make_dir(path)
+ for file_ in files:
+ size = random.randint(1000, 5000)
+ data = "0" * size
+ filepath = os.path.join(path, file_)
+ with open(
+ _unicode_encode(filepath, encoding=_encodings["fs"]),
+ "w",
+ file_mode,
+ encoding=_encodings["content"],
+ ) as new_file:
+ new_file.write(data)
+ if file_ not in clean_dict:
+ # it is included in a multifile target
+ continue
+ elif clean_dict[file_] == []:
+ clean_dict[file_] = filepath
+ else:
+ file_list = clean_dict[file_]
+ for key in range(len(file_list)):
+ file_list[key] = os.path.join(path, file_list[key])
def make_pkgs(path, files_dict, clean_dict):
- """Create a small fake packages directory and call make_dist() to
- create and populate the category dir & package files
-
- @param path: the path to create the packages directory
- @param files_dict: dictionary of {cat: [pkg1, pkg2,...]}
- """
- make_dir(path)
- for cat in files_dict.keys():
- make_dist(os.path.join(path,cat),
- files_dict[cat],
- clean_dict)
- # cp the Packages index file to path
- source = os.path.join(os.path.dirname(__file__), 'Packages')
- shutil.copy2(source, path)
+ """Create a small fake packages directory and call make_dist() to
+ create and populate the category dir & package files
+
+ @param path: the path to create the packages directory
+ @param files_dict: dictionary of {cat: [pkg1, pkg2,...]}
+ """
+ make_dir(path)
+ for cat in files_dict.keys():
+ make_dist(os.path.join(path, cat), files_dict[cat], clean_dict)
+ # cp the Packages index file to path
+ source = os.path.join(os.path.dirname(__file__), "Packages")
+ shutil.copy2(source, path)
def make_symlinks(path, links, targets):
- """Create some symlinks at path
+ """Create some symlinks at path
- @param path: the location to create the symlinks at
- @param links: list of links to create
- @param targets: list of targets to create links for,
- and need to be in the same index order as links
- """
- for i in range(len(links)):
- os.symlink(os.path.join(path,targets[i]),
- os.path.join(path, links[i]))
+ @param path: the location to create the symlinks at
+ @param links: list of links to create
+ @param targets: list of targets to create links for,
+ and need to be in the same index order as links
+ """
+ for i in range(len(links)):
+ os.symlink(os.path.join(path, targets[i]), os.path.join(path, links[i]))
class TestDirCreation:
""""""
- distfile_list = ['ExtUtils-ParseXS-2.22.tar.gz',
- 'xorg-server-1.5.3.tar.bz2',
- 'portage-utils-0.2.1.tar.bz2',
- 'sysvinit_2.87dsf.orig.tar.gz',
- 'sysvinit-2.86.tar.gz',
- 'ExtUtils-ParseXS-2.20.tar.gz',
- 'libisofs-0.6.22.tar.gz',
- 'pixman-0.16.0.tar.bz2',
- 'libburn-0.7.2.pl01.tar.gz',
- 'libisofs-0.6.24.tar.gz',
- 'xorg-server-1.5.3-gentoo-patches-08.tar.bz2',
- 'ExtUtils-ParseXS-2.200401.tar.gz',
- 'sysvinit-2.87-patches-2.tar.bz2',
- 'sysvinit-2.86-kexec.patch',
- 'Module-Build-0.3601.tar.gz',
- 'libisofs-0.6.20.tar.gz',
- 'xine-lib-1.1.17.tar.bz2',
- 'pixman-0.14.0.tar.bz2',
- 'Archive-Tar-1.52.tar.gz',
- 'libburn-0.6.8.pl00.tar.gz',
- 'libexif-0.6.17.tar.bz2',
- 'portage-utils-0.3.tar.bz2',
- 'xine-lib-1.1.15-textrel-fix.patch',
- 'Module-Build-0.34.tar.gz',
- 'Archive-Tar-1.54.tar.gz',
- 'pixman-0.16.2.tar.bz2',
- 'libburn-0.7.4.pl00.tar.gz ',
- 'Module-Build-0.340201.tar.gz',
- 'pixman-0.17.2.tar.bz2',
- 'util-macros-1.3.0.tar.bz2',
- 'Module-Build-0.35.tar.gz',
- 'libburn-0.7.2.pl00.tar.gz',
- 'util-macros-1.4.1.tar.bz2',
- 'xine-lib-1.1.16.3.tar.bz2',
- 'sysvinit-2.86-extra.patch',
- 'libburn-0.7.0.pl00.tar.gz',
- 'ExtUtils-ParseXS-2.21.tar.gz',
- 'libexif-0.6.19.tar.bz2',
- 'sysvinit-2.87-patches-1.tar.bz2',
+ distfile_list = [
+ "ExtUtils-ParseXS-2.22.tar.gz",
+ "xorg-server-1.5.3.tar.bz2",
+ "portage-utils-0.2.1.tar.bz2",
+ "sysvinit_2.87dsf.orig.tar.gz",
+ "sysvinit-2.86.tar.gz",
+ "ExtUtils-ParseXS-2.20.tar.gz",
+ "libisofs-0.6.22.tar.gz",
+ "pixman-0.16.0.tar.bz2",
+ "libburn-0.7.2.pl01.tar.gz",
+ "libisofs-0.6.24.tar.gz",
+ "xorg-server-1.5.3-gentoo-patches-08.tar.bz2",
+ "ExtUtils-ParseXS-2.200401.tar.gz",
+ "sysvinit-2.87-patches-2.tar.bz2",
+ "sysvinit-2.86-kexec.patch",
+ "Module-Build-0.3601.tar.gz",
+ "libisofs-0.6.20.tar.gz",
+ "xine-lib-1.1.17.tar.bz2",
+ "pixman-0.14.0.tar.bz2",
+ "Archive-Tar-1.52.tar.gz",
+ "libburn-0.6.8.pl00.tar.gz",
+ "libexif-0.6.17.tar.bz2",
+ "portage-utils-0.3.tar.bz2",
+ "xine-lib-1.1.15-textrel-fix.patch",
+ "Module-Build-0.34.tar.gz",
+ "Archive-Tar-1.54.tar.gz",
+ "pixman-0.16.2.tar.bz2",
+ "libburn-0.7.4.pl00.tar.gz ",
+ "Module-Build-0.340201.tar.gz",
+ "pixman-0.17.2.tar.bz2",
+ "util-macros-1.3.0.tar.bz2",
+ "Module-Build-0.35.tar.gz",
+ "libburn-0.7.2.pl00.tar.gz",
+ "util-macros-1.4.1.tar.bz2",
+ "xine-lib-1.1.16.3.tar.bz2",
+ "sysvinit-2.86-extra.patch",
+ "libburn-0.7.0.pl00.tar.gz",
+ "ExtUtils-ParseXS-2.21.tar.gz",
+ "libexif-0.6.19.tar.bz2",
+ "sysvinit-2.87-patches-1.tar.bz2",
# now a base pkg with 2 additional symlink targets
- 'symlink-test-1.2.3.tar.bz2',
- 'target-1',
- 'target-2'
- ]
+ "symlink-test-1.2.3.tar.bz2",
+ "target-1",
+ "target-2",
+ ]
- distfile_symlink = ['symlink-test-1.2.3-symlink1',
- 'symlink-test-1.2.3-symlink2']
+ distfile_symlink = ["symlink-test-1.2.3-symlink1", "symlink-test-1.2.3-symlink2"]
dist_clean = {
- 'Archive-Tar-1.52.tar.gz': [],
- 'ExtUtils-ParseXS-2.20.tar.gz': [],
- 'ExtUtils-ParseXS-2.200401.tar.gz': [],
- 'ExtUtils-ParseXS-2.21.tar.gz': [],
- 'Module-Build-0.34.tar.gz': [],
- 'Module-Build-0.340201.tar.gz': [],
- 'Module-Build-0.35.tar.gz': [],
- 'libburn-0.6.8.pl00.tar.gz': [],
- 'libburn-0.7.0.pl00.tar.gz': [],
- 'libburn-0.7.2.pl00.tar.gz': [],
- 'libburn-0.7.2.pl01.tar.gz': [],
- 'libexif-0.6.17.tar.bz2': [],
- 'libisofs-0.6.20.tar.gz': [],
- 'libisofs-0.6.22.tar.gz': [],
- 'pixman-0.14.0.tar.bz2': [],
- 'pixman-0.16.0.tar.bz2': [],
- 'pixman-0.16.2.tar.bz2': [],
- 'portage-utils-0.2.1.tar.bz2': [],
- 'sysvinit-2.86.tar.gz': ['sysvinit-2.86.tar.gz',
- 'sysvinit-2.86-kexec.patch', 'sysvinit-2.86-extra.patch'],
- 'util-macros-1.3.0.tar.bz2': [],
- 'xine-lib-1.1.15-textrel-fix.patch': [],
- 'xine-lib-1.1.16.3.tar.bz2': [],
- 'xorg-server-1.5.3.tar.bz2': ['xorg-server-1.5.3.tar.bz2',
- 'xorg-server-1.5.3-gentoo-patches-08.tar.bz2'],
- 'symlink-test-1.2.3.tar.bz2': distfile_symlink
+ "Archive-Tar-1.52.tar.gz": [],
+ "ExtUtils-ParseXS-2.20.tar.gz": [],
+ "ExtUtils-ParseXS-2.200401.tar.gz": [],
+ "ExtUtils-ParseXS-2.21.tar.gz": [],
+ "Module-Build-0.34.tar.gz": [],
+ "Module-Build-0.340201.tar.gz": [],
+ "Module-Build-0.35.tar.gz": [],
+ "libburn-0.6.8.pl00.tar.gz": [],
+ "libburn-0.7.0.pl00.tar.gz": [],
+ "libburn-0.7.2.pl00.tar.gz": [],
+ "libburn-0.7.2.pl01.tar.gz": [],
+ "libexif-0.6.17.tar.bz2": [],
+ "libisofs-0.6.20.tar.gz": [],
+ "libisofs-0.6.22.tar.gz": [],
+ "pixman-0.14.0.tar.bz2": [],
+ "pixman-0.16.0.tar.bz2": [],
+ "pixman-0.16.2.tar.bz2": [],
+ "portage-utils-0.2.1.tar.bz2": [],
+ "sysvinit-2.86.tar.gz": [
+ "sysvinit-2.86.tar.gz",
+ "sysvinit-2.86-kexec.patch",
+ "sysvinit-2.86-extra.patch",
+ ],
+ "util-macros-1.3.0.tar.bz2": [],
+ "xine-lib-1.1.15-textrel-fix.patch": [],
+ "xine-lib-1.1.16.3.tar.bz2": [],
+ "xorg-server-1.5.3.tar.bz2": [
+ "xorg-server-1.5.3.tar.bz2",
+ "xorg-server-1.5.3-gentoo-patches-08.tar.bz2",
+ ],
+ "symlink-test-1.2.3.tar.bz2": distfile_symlink,
}
package_dict = {
- 'app-arch': ['p7zip-4.65.tbz2', 'p7zip-4.57.tbz2',
- 'file-roller-2.26.3.tbz2', 'tar-1.20.tbz2',
- 'p7zip-4.58.tbz2', 'file-roller-2.28.2.tbz2',
- 'file-roller-2.24.3.tbz2', 'gzip-1.4.tbz2', 'rar-3.9.0.tbz2',
- 'bzip2-1.0.5-r1.tbz2', 'cpio-2.10.tbz2', 'tar-1.21-r1.tbz2',
- 'cpio-2.10-r1.tbz2', 'file-roller-2.28.1.tbz2', 'cpio-2.9-r2.tbz2',
- 'tar-1.22.tbz2', 'cpio-2.9-r3.tbz2'],
- 'app-editors': ['nano-2.2.0.tbz2', 'nano-2.1.10.tbz2',
- 'nano-2.0.9.tbz2', 'nano-2.2.2.tbz2'],
- 'app-portage': ['layman-1.3.0_rc1-r3.tbz2', 'layman-1.2.6.tbz2',
- 'portage-utils-0.3.1.tbz2', 'layman-1.3.0.tbz2',
- 'layman-1.2.4-r3.tbz2', 'layman-1.2.3.tbz2',
- 'layman-1.3.0_rc1.tbz2'],
- 'sys-apps': ['shadow-4.0.18.2.tbz2', 'shadow-4.1.2.2.tbz2',
- 'openrc-0.6.0-r1.tbz2', 'shadow-4.1.4.2-r1.tbz2',
- 'shadow-4.1.4.2-r2.tbz2']
- }
+ "app-arch": [
+ "p7zip-4.65.tbz2",
+ "p7zip-4.57.tbz2",
+ "file-roller-2.26.3.tbz2",
+ "tar-1.20.tbz2",
+ "p7zip-4.58.tbz2",
+ "file-roller-2.28.2.tbz2",
+ "file-roller-2.24.3.tbz2",
+ "gzip-1.4.tbz2",
+ "rar-3.9.0.tbz2",
+ "bzip2-1.0.5-r1.tbz2",
+ "cpio-2.10.tbz2",
+ "tar-1.21-r1.tbz2",
+ "cpio-2.10-r1.tbz2",
+ "file-roller-2.28.1.tbz2",
+ "cpio-2.9-r2.tbz2",
+ "tar-1.22.tbz2",
+ "cpio-2.9-r3.tbz2",
+ ],
+ "app-editors": [
+ "nano-2.2.0.tbz2",
+ "nano-2.1.10.tbz2",
+ "nano-2.0.9.tbz2",
+ "nano-2.2.2.tbz2",
+ ],
+ "app-portage": [
+ "layman-1.3.0_rc1-r3.tbz2",
+ "layman-1.2.6.tbz2",
+ "portage-utils-0.3.1.tbz2",
+ "layman-1.3.0.tbz2",
+ "layman-1.2.4-r3.tbz2",
+ "layman-1.2.3.tbz2",
+ "layman-1.3.0_rc1.tbz2",
+ ],
+ "sys-apps": [
+ "shadow-4.0.18.2.tbz2",
+ "shadow-4.1.2.2.tbz2",
+ "openrc-0.6.0-r1.tbz2",
+ "shadow-4.1.4.2-r1.tbz2",
+ "shadow-4.1.4.2-r2.tbz2",
+ ],
+ }
pkg_clean = {
- 'app-arch/p7zip-4.57.tbz2': [],
- 'app-arch/file-roller-2.26.3.tbz2': [],
- 'app-arch/tar-1.20.tbz2': [],
- 'app-arch/p7zip-4.58.tbz2': [],
- 'app-arch/file-roller-2.28.2.tbz2': [],
- 'app-arch/file-roller-2.24.3.tbz2': [],
- 'app-arch/bzip2-1.0.5-r1.tbz2': [],
- 'app-arch/cpio-2.10.tbz2': [],
- 'app-arch/tar-1.21-r1.tbz2': [],
- 'app-arch/cpio-2.9-r2.tbz2': [],
- 'app-arch/cpio-2.9-r3.tbz2': [],
- 'app-editors/nano-2.2.0.tbz2': [],
- 'app-editors/nano-2.1.10.tbz2': [],
- 'app-editors/nano-2.0.9.tbz2': [],
- 'app-portage/layman-1.3.0_rc1-r3.tbz2': [],
- 'app-portage/layman-1.2.6.tbz2': [],
- 'app-portage/layman-1.2.4-r3.tbz2': [],
- 'app-portage/layman-1.2.3.tbz2': [],
- 'app-portage/layman-1.3.0_rc1.tbz2': [],
- 'sys-apps/shadow-4.0.18.2.tbz2': [],
- 'sys-apps/shadow-4.1.2.2.tbz2': [],
- 'sys-apps/shadow-4.1.4.2-r1.tbz2': [],
- }
+ "app-arch/p7zip-4.57.tbz2": [],
+ "app-arch/file-roller-2.26.3.tbz2": [],
+ "app-arch/tar-1.20.tbz2": [],
+ "app-arch/p7zip-4.58.tbz2": [],
+ "app-arch/file-roller-2.28.2.tbz2": [],
+ "app-arch/file-roller-2.24.3.tbz2": [],
+ "app-arch/bzip2-1.0.5-r1.tbz2": [],
+ "app-arch/cpio-2.10.tbz2": [],
+ "app-arch/tar-1.21-r1.tbz2": [],
+ "app-arch/cpio-2.9-r2.tbz2": [],
+ "app-arch/cpio-2.9-r3.tbz2": [],
+ "app-editors/nano-2.2.0.tbz2": [],
+ "app-editors/nano-2.1.10.tbz2": [],
+ "app-editors/nano-2.0.9.tbz2": [],
+ "app-portage/layman-1.3.0_rc1-r3.tbz2": [],
+ "app-portage/layman-1.2.6.tbz2": [],
+ "app-portage/layman-1.2.4-r3.tbz2": [],
+ "app-portage/layman-1.2.3.tbz2": [],
+ "app-portage/layman-1.3.0_rc1.tbz2": [],
+ "sys-apps/shadow-4.0.18.2.tbz2": [],
+ "sys-apps/shadow-4.1.2.2.tbz2": [],
+ "sys-apps/shadow-4.1.4.2-r1.tbz2": [],
+ }
def __init__(self, options):
"""Initialization
@@ -226,12 +257,13 @@ class TestDirCreation:
self.options = options
self.targets_init = False
# create distfiles dir and populate it
- make_dist(self.options['target_path'], self.distfile_list, self.dist_clean)
+ make_dist(self.options["target_path"], self.distfile_list, self.dist_clean)
# add some symlinks to it
- path = os.path.join(self.options['target_path'], 'distfiles')
- make_symlinks(path, self.distfile_symlink,
- self.dist_clean['symlink-test-1.2.3.tar.bz2'])
+ path = os.path.join(self.options["target_path"], "distfiles")
+ make_symlinks(
+ path, self.distfile_symlink, self.dist_clean["symlink-test-1.2.3.tar.bz2"]
+ )
# create the packages dir and populate it
- path = os.path.join(self.options['target_path'], 'packages')
+ path = os.path.join(self.options["target_path"], "packages")
make_pkgs(path, self.package_dict, self.pkg_clean)
self.targets_init = True