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