Mercurial > hg > carton
annotate tests/doctest.txt @ 35:122c56779f2b
add functionality to run post-install python scripts
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 08 Aug 2011 18:08:49 -0700 |
parents | dace84448c25 |
children |
rev | line source |
---|---|
5 | 1 Test carton |
2 =========== | |
3 | |
4 The obligatory imports: | |
5 | |
6 >>> import carton | |
8
5905459d4ebe
now have a passing if somewhat rudimentary test
Jeff Hammel <jhammel@mozilla.com>
parents:
7
diff
changeset
|
7 >>> import os |
7 | 8 |
9 Make a temporary directory:: | |
10 | |
5 | 11 >>> import tempfile |
7 | 12 >>> directory = tempfile.mkdtemp() |
5 | 13 |
9 | 14 Invoke carton:: |
5 | 15 |
8
5905459d4ebe
now have a passing if somewhat rudimentary test
Jeff Hammel <jhammel@mozilla.com>
parents:
7
diff
changeset
|
16 >>> os.chdir(directory) |
13
f522620c6a78
now works properly with tarballs
Jeff Hammel <jhammel@mozilla.com>
parents:
10
diff
changeset
|
17 >>> packages = [os.path.join(here, i) for i in 'packageC.tar.gz', 'packageB', 'packageA'] |
8
5905459d4ebe
now have a passing if somewhat rudimentary test
Jeff Hammel <jhammel@mozilla.com>
parents:
7
diff
changeset
|
18 >>> carton.main(['foo'] + packages) |
5905459d4ebe
now have a passing if somewhat rudimentary test
Jeff Hammel <jhammel@mozilla.com>
parents:
7
diff
changeset
|
19 >>> os.listdir('.') |
5905459d4ebe
now have a passing if somewhat rudimentary test
Jeff Hammel <jhammel@mozilla.com>
parents:
7
diff
changeset
|
20 ['foo.py'] |
5 | 21 |
10 | 22 Invoke the foo.py it creates:: |
23 | |
24 >>> import subprocess | |
25 >>> subprocess.call([python, 'foo.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |
26 0 | |
27 >>> sorted(os.listdir('.')) | |
28 ['foo', 'foo.py'] | |
29 >>> os.path.isdir('foo') | |
30 True | |
31 >>> sorted(os.listdir(os.path.join('foo', 'src'))) | |
13
f522620c6a78
now works properly with tarballs
Jeff Hammel <jhammel@mozilla.com>
parents:
10
diff
changeset
|
32 ['packageA', 'packageB', 'packageC'] |
10 | 33 |
19
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
34 Find a console script. This shows installation went well:: |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
35 |
24 | 36 >>> bin = [os.path.join('foo', i) for i in ('bin', 'Scripts') if os.path.exists(os.path.join('foo', i))][0] |
37 >>> os.path.isdir(bin) | |
38 True | |
19
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
39 >>> os.path.exists(os.path.join(bin, 'packageA')) or os.path.exists(os.path.join(bin, 'packageA.exe')) |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
40 True |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
41 |
25
e2db2913123d
test to ensure we are bringing along virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
24
diff
changeset
|
42 Ensure you're bringing along virtualenv:: |
e2db2913123d
test to ensure we are bringing along virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
24
diff
changeset
|
43 |
e2db2913123d
test to ensure we are bringing along virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
24
diff
changeset
|
44 >>> os.path.exists(os.path.join(bin, 'virtualenv')) or os.path.exists(os.path.join(bin, 'virtualenv.exe')) |
e2db2913123d
test to ensure we are bringing along virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
24
diff
changeset
|
45 True |
e2db2913123d
test to ensure we are bringing along virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
24
diff
changeset
|
46 |
27
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
47 Ensure you're bringing along carton:: |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
48 |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
49 >>> packaged_carton = os.path.join(bin, 'carton.py') |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
50 >>> os.path.exists(packaged_carton) |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
51 True |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
52 >>> carton_module = carton.__file__.rstrip('c') |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
53 >>> os.path.exists(carton_module) |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
54 True |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
55 >>> file(packaged_carton).read() == file(carton_module).read() |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
56 True |
dace84448c25
carry carton along with carton
Jeff Hammel <jhammel@mozilla.com>
parents:
25
diff
changeset
|
57 |
19
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
58 Show that non-package files get carried along too:: |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
59 |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
60 >>> os.path.exists(os.path.join('foo', 'src', 'packageA', 'foo.txt')) |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
61 True |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
62 |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
63 Invoke carton again. This time, package the source so that |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
64 stragglers don't come along:: |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
65 |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
66 >>> carton.main(['bar', '--package'] + packages) |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
67 >>> 'bar.py' in os.listdir('.') |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
68 True |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
69 >>> subprocess.call([python, 'bar.py', '--env', 'fleem'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
70 0 |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
71 >>> os.path.exists('fleem') and os.path.isdir('fleem') |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
72 True |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
73 >>> srcdir = os.path.join('fleem', 'src') |
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
74 >>> packageA = os.path.join(srcdir, [i for i in os.listdir(srcdir) if i.startswith('packageA')][0]) |
24 | 75 >>> os.path.exists(os.path.join(packageA, 'foo.txt')) |
20
e2c9a9a4d524
...except i fuxored my logic
Jeff Hammel <jhammel@mozilla.com>
parents:
19
diff
changeset
|
76 False |
19
996d579f0dc3
test for --package and --env
Jeff Hammel <jhammel@mozilla.com>
parents:
13
diff
changeset
|
77 |
7 | 78 Clean up:: |
79 | |
80 >>> import shutil | |
81 >>> shutil.rmtree(directory) |