Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r14445 - main/trunk/pym/portage/tests/bin
Date: Sun, 27 Sep 2009 18:01:48
Message-Id: E1Mry3v-0003Go-Bl@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-09-27 18:01:30 +0000 (Sun, 27 Sep 2009)
3 New Revision: 14445
4
5 Modified:
6 main/trunk/pym/portage/tests/bin/setup_env.py
7 Log:
8 Use mkdtemp() instead of hardcoded pym/portage/tests/bin/root directory.
9
10
11 Modified: main/trunk/pym/portage/tests/bin/setup_env.py
12 ===================================================================
13 --- main/trunk/pym/portage/tests/bin/setup_env.py 2009-09-27 09:17:01 UTC (rev 14444)
14 +++ main/trunk/pym/portage/tests/bin/setup_env.py 2009-09-27 18:01:30 UTC (rev 14445)
15 @@ -3,6 +3,8 @@
16 # Distributed under the terms of the GNU General Public License v2
17 # $Id$
18
19 +import tempfile
20 +
21 from portage import os
22 from portage import shutil
23 from portage.tests import TestCase
24 @@ -12,25 +14,32 @@
25 bindir = os.path.join(os.path.dirname(os.path.dirname(
26 os.path.abspath(__file__))),
27 "..", "..", "..", "bin", "ebuild-helpers")
28 -basedir = os.path.join(os.path.dirname(os.path.dirname(
29 - os.path.abspath(__file__))), "bin", "root")
30 -os.environ["D"] = os.path.join(basedir, "image")
31 -os.environ["T"] = os.path.join(basedir, "temp")
32 -os.environ["S"] = os.path.join(basedir, "workdir")
33 -os.environ["PF"] = "portage-tests-0.09-r1"
34 -os.environ["PATH"] = bindir + ":" + os.environ["PATH"]
35 -os.environ["PORTAGE_BIN_PATH"] = PORTAGE_BIN_PATH
36 +basedir = None
37 +env = None
38
39 def binTestsCleanup():
40 + global basedir
41 + if basedir is None:
42 + return
43 if os.access(basedir, os.W_OK):
44 shutil.rmtree(basedir)
45 + basedir = None
46 +
47 def binTestsInit():
48 binTestsCleanup()
49 - os.mkdir(basedir)
50 - os.mkdir(os.environ["D"])
51 - os.mkdir(os.environ["T"])
52 - os.mkdir(os.environ["S"])
53 - os.chdir(os.environ["S"])
54 + global basedir, env
55 + basedir = tempfile.mkdtemp()
56 + env = os.environ.copy()
57 + env["D"] = os.path.join(basedir, "image")
58 + env["T"] = os.path.join(basedir, "temp")
59 + env["S"] = os.path.join(basedir, "workdir")
60 + env["PF"] = "portage-tests-0.09-r1"
61 + env["PATH"] = bindir + ":" + env["PATH"]
62 + env["PORTAGE_BIN_PATH"] = PORTAGE_BIN_PATH
63 + os.mkdir(env["D"])
64 + os.mkdir(env["T"])
65 + os.mkdir(env["S"])
66 + os.chdir(env["S"])
67
68 class BinTestCase(TestCase):
69 def __init__(self, methodName):
70 @@ -43,7 +52,7 @@
71
72 def _exists_in_D(path):
73 # Note: do not use os.path.join() here, we assume D to end in /
74 - return os.access(os.environ["D"] + path, os.W_OK)
75 + return os.access(env["D"] + path, os.W_OK)
76 def exists_in_D(path):
77 if not _exists_in_D(path):
78 raise TestCase.failureException
79 @@ -54,9 +63,10 @@
80 def portage_func(func, args, exit_status=0):
81 # we don't care about the output of the programs,
82 # just their exit value and the state of $D
83 + global env
84 f = open('/dev/null', 'wb')
85 fd_pipes = {0:0,1:f.fileno(),2:f.fileno()}
86 - spawn(func+" "+args, env=os.environ, fd_pipes=fd_pipes)
87 + spawn([func] + args.split(), env=env, fd_pipes=fd_pipes)
88 f.close()
89
90 def create_portage_wrapper(bin):
91 @@ -71,4 +81,4 @@
92 bin.startswith("new") or \
93 bin.startswith("prep") or \
94 bin in ["ecompress","ecompressdir","fowners","fperms"]:
95 - globals()[bin] = create_portage_wrapper(bin)
96 + globals()[bin] = create_portage_wrapper(os.path.join(bindir, bin))