Merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup
- run-integration-tests-in-tarmac
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Brad Crittenden |
Approved revision: | 87 |
Merged at revision: | 69 |
Proposed branch: | lp:~bac/lpsetup/run-integration-tests-in-tarmac |
Merge into: | lp:lpsetup |
Diff against target: |
294 lines (+72/-53) 8 files modified
bin/setup-host-for-nested-lxc-containers.sh (+8/-4) lpsetup/subcommands/install_lxc.py (+4/-3) lpsetup/subcommands/update.py (+8/-3) lpsetup/tests/integration/common.py (+15/-2) lpsetup/tests/integration/test_install_lxc.py (+23/-36) lpsetup/tests/subcommands/test_install_lxc.py (+1/-1) lpsetup/tests/subcommands/test_update.py (+2/-1) pre-commit.sh (+11/-3) |
To merge this branch: | bzr merge lp:~bac/lpsetup/run-integration-tests-in-tarmac |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Francesco Banconi (community) | Approve | ||
Review via email: mp+117910@code.launchpad.net |
Commit message
Run integration test in tarmac. Use stub for download-cache.
Description of the change
* Change pre-commit.sh to run the install_lxc integration test.
* Instead of downloading the real download-cache in the test, use a stub version that is basically empty. This should speed up the test considerably. (I say "should" because my manual tests have been all over the map. The tests are highly dependent on network bandwidth and the variability in my environment on network usage is really high.)
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Brad Crittenden (bac) wrote : | # |
Apologies to all who are receiving these emails...
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
* Reloading AppArmor profiles
...done.
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
* Reloading AppArmor profiles
...done.
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
lxc.aa_profile = lxc-container-
*******
* Checking test environment. *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
+ pep8 --exclude=build ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
* Reloading AppArmor profiles
...done.
Executing: gpg --ignore-
Ign http://
Ign http://
Ign http://
Ign http://
Get:1 http://
Get:2 http://
Get:3 http://
Get:4 http://
Ign http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
lxc.aa_profile = lxc-container-
WARNING: this command will destroy the 'lpsetup-
This includes all machines, services, data, and other resources. Continue [y/N]**
* Checking test environment. *
*******
*******
* Setting up the test environment for LXC container. *
*******
-------
check_call:
juju bootstrap -e lpsetup-testing-lxc
-------
*******
* Cleaning up. *
*******
*******
* Run time: 0:00:30.859648 *
*******
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
lxc.aa_profile = lxc-container-
Executing: gpg --ignore-
Ign http://
Ign http://
Ign http://
Ign http://
Get:1 http://
Get:2 http://
Hit http://
Get:3 http://
Get:4 http://
Get:5 http://
Get:6 http://
Hit http://
Get:7 http://
Get:8 http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Get:9 http://
Get:10 http://
Get:11 http://
Hit http://
Hit http://
Hit http://
Hit http://
Get:12 http://
Get:13 http://
Get:14 http://
Get:15 http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Hit http://
Get:16 http://
Ign http://
Launchpad QA Bot (lpqabot) wrote : | # |
There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.
Launchpad QA Bot (lpqabot) wrote : | # |
The attempt to merge lp:~bac/lpsetup/run-integration-tests-in-tarmac into lp:lpsetup failed. Below is the output from the failed tests.
./lpsetup/
7: 'StringIO' imported but unused
13: 'find_unmerged' imported but unused
15: 'WorkingTree' imported but unused
12: 'NotBranchError' imported but unused
14: 'show_tree_status' imported but unused
+ set -o errexit
++ grep -v distribute_setup.py
++ find . -name build -prune -o -name '*.py'
+ pyfiles='./setup.py
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/
./lplxcip/lxcip.py
./lpsetup/utils.py
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/
./lpsetup/cli.py'
+ pocketlint ./setup.py ./lplxcip/
- 87. By Brad Crittenden
-
Removed lint
Preview Diff
1 | === modified file 'bin/setup-host-for-nested-lxc-containers.sh' |
2 | --- bin/setup-host-for-nested-lxc-containers.sh 2012-07-30 16:03:49 +0000 |
3 | +++ bin/setup-host-for-nested-lxc-containers.sh 2012-08-07 16:13:19 +0000 |
4 | @@ -1,7 +1,11 @@ |
5 | #!/bin/bash |
6 | |
7 | -sudo cp lpsetup/templates/lxc-container-with-nesting /etc/apparmor.d/lxc |
8 | -sudo /etc/init.d/apparmor reload |
9 | -sudo cp /usr/lib/lxc/templates/lxc-ubuntu /usr/lib/lxc/templates/lxc-ubuntu.orig |
10 | -sudo sed -i "s/#lxc.aa_profile = unconfined/lxc.aa_profile = lxc-container-with-nesting/" \ |
11 | +# Must be run as root. |
12 | +# Attempt to make this script idempotent. |
13 | +grep lxc-container-with-nesting /usr/lib/lxc/templates/lxc-ubuntu && exit |
14 | + |
15 | +cp lpsetup/templates/lxc-container-with-nesting /etc/apparmor.d/lxc |
16 | +/etc/init.d/apparmor reload |
17 | +cp /usr/lib/lxc/templates/lxc-ubuntu /usr/lib/lxc/templates/lxc-ubuntu.orig |
18 | +sed -i "s/#lxc.aa_profile = unconfined/lxc.aa_profile = lxc-container-with-nesting/" \ |
19 | /usr/lib/lxc/templates/lxc-ubuntu |
20 | |
21 | === modified file 'lpsetup/subcommands/install_lxc.py' |
22 | --- lpsetup/subcommands/install_lxc.py 2012-07-31 09:31:14 +0000 |
23 | +++ lpsetup/subcommands/install_lxc.py 2012-08-07 16:13:19 +0000 |
24 | @@ -101,8 +101,9 @@ |
25 | |
26 | def update_in_lxc( |
27 | lxc_name, ssh_key_path, home_dir, user, external_path, |
28 | - target_dir, use_http): |
29 | - args = ['update', target_dir, '--external-path', external_path] |
30 | + target_dir, lp_source_deps, use_http): |
31 | + args = ['update', target_dir, '--external-path', external_path, |
32 | + '--lp-source-deps', lp_source_deps] |
33 | if use_http: |
34 | args.append('--use-http') |
35 | cmd_in_lxc(lxc_name, ssh_key_path, home_dir, args, as_user=user) |
36 | @@ -136,7 +137,7 @@ |
37 | 'lxc_name', 'ssh_key_path', 'home_dir', 'user', 'source', 'use_http', |
38 | 'branch_name', 'checkout_name', 'repository', 'no_checkout'), |
39 | (update_in_lxc, 'lxc_name', 'ssh_key_path', 'home_dir', 'user', |
40 | - 'external_path', 'target_dir', 'use_http'), |
41 | + 'external_path', 'target_dir', 'lp_source_deps', 'use_http'), |
42 | (finish_inithost_in_lxc, 'lxc_name', 'ssh_key_path', 'home_dir', |
43 | 'user', 'target_dir'), |
44 | # Run on host: |
45 | |
46 | === modified file 'lpsetup/subcommands/update.py' |
47 | --- lpsetup/subcommands/update.py 2012-08-01 15:26:38 +0000 |
48 | +++ lpsetup/subcommands/update.py 2012-08-07 16:13:19 +0000 |
49 | @@ -35,7 +35,7 @@ |
50 | """ |
51 | |
52 | |
53 | -def update_dependencies(target_dir, external_path, use_http): |
54 | +def update_dependencies(target_dir, external_path, use_http, lp_source_deps): |
55 | """Update the external dependencies.""" |
56 | use_http_param = '--use-http' if use_http else None |
57 | cmd = os.path.join(target_dir, 'utilities', 'update-sourcecode') |
58 | @@ -50,7 +50,7 @@ |
59 | call('bzr', 'up', download_cache) |
60 | else: |
61 | call('bzr', 'co', '-v', '--lightweight', |
62 | - LP_SOURCE_DEPS, download_cache) |
63 | + lp_source_deps, download_cache) |
64 | |
65 | # Link to the external sourcecode. |
66 | if abs_external_path != target_dir: |
67 | @@ -84,7 +84,8 @@ |
68 | has_interactive_run = False |
69 | steps = ( |
70 | (initialize_directories, 'target_dir', 'external_path'), |
71 | - (update_dependencies, 'target_dir', 'external_path', 'use_http'), |
72 | + (update_dependencies, |
73 | + 'target_dir', 'external_path', 'use_http', 'lp_source_deps'), |
74 | (update_tree, 'target_dir'), |
75 | ) |
76 | help = __doc__ |
77 | @@ -101,6 +102,10 @@ |
78 | help='Path to directory that contains sourcecode ' |
79 | 'and download-cache directories, relative to the ' |
80 | 'working-dir. ') |
81 | + parser.add_argument( |
82 | + '--lp-source-deps', default=LP_SOURCE_DEPS, |
83 | + help='URL of LP source deps branch. ' |
84 | + '[DEFAULT={0}]'.format(LP_SOURCE_DEPS)) |
85 | |
86 | def add_arguments(self, parser): |
87 | super(SubCommand, self).add_arguments(parser) |
88 | |
89 | === modified file 'lpsetup/tests/integration/common.py' |
90 | --- lpsetup/tests/integration/common.py 2012-07-24 17:59:58 +0000 |
91 | +++ lpsetup/tests/integration/common.py 2012-08-07 16:13:19 +0000 |
92 | @@ -13,8 +13,11 @@ |
93 | from datetime import datetime |
94 | from email.Utils import formataddr |
95 | import os |
96 | +import sys |
97 | import time |
98 | +import traceback |
99 | from subprocess import ( |
100 | + CalledProcessError, |
101 | check_call as check_call_orig, |
102 | PIPE, |
103 | Popen, |
104 | @@ -51,7 +54,13 @@ |
105 | print "check_call:" |
106 | print ' '.join(*args) |
107 | print '-' * 70 |
108 | - check_call_orig(*args) |
109 | + try: |
110 | + check_call_orig(*args) |
111 | + except CalledProcessError as e: |
112 | + print '*' * 70 |
113 | + print e.output |
114 | + print '*' * 70 |
115 | + raise |
116 | |
117 | def on_remote(self, args): |
118 | if isinstance(args, basestring): |
119 | @@ -105,6 +114,8 @@ |
120 | self.banner('Cleaning up.') |
121 | code = os.system( |
122 | 'echo y | juju destroy-environment -e {}'.format(self.juju_env)) |
123 | + # Provide a line-feed to follow the previous command. |
124 | |
125 | if code != 0: |
126 | raise RuntimeError('Destroying the test juju environment failed.') |
127 | |
128 | @@ -127,8 +138,10 @@ |
129 | try: |
130 | self.do_test() |
131 | except Exception as err: |
132 | + _, _, tb = sys.exc_info() |
133 | self.banner('Test failed. Sorry.') |
134 | print err |
135 | + traceback.print_tb(tb) |
136 | return 1 |
137 | else: |
138 | self.banner('Test succeeded.') |
139 | @@ -136,4 +149,4 @@ |
140 | finally: |
141 | if not self.args.no_tear_down: |
142 | self.tear_down() |
143 | - print "Run time: ", datetime.now() - start_time |
144 | + self.banner("Run time: {}".format(datetime.now() - start_time)) |
145 | |
146 | === modified file 'lpsetup/tests/integration/test_install_lxc.py' |
147 | --- lpsetup/tests/integration/test_install_lxc.py 2012-07-31 08:08:51 +0000 |
148 | +++ lpsetup/tests/integration/test_install_lxc.py 2012-08-07 16:13:19 +0000 |
149 | @@ -4,16 +4,10 @@ |
150 | |
151 | """A simple, end-to-end integration test of install-lxc.""" |
152 | |
153 | -from StringIO import StringIO |
154 | import sys |
155 | import urlparse |
156 | |
157 | from bzrlib.branch import Branch |
158 | -from bzrlib.errors import NotBranchError |
159 | -from bzrlib.missing import find_unmerged |
160 | -from bzrlib.status import show_tree_status |
161 | -from bzrlib.workingtree import WorkingTree |
162 | - |
163 | |
164 | from common import IntegrationTestBase |
165 | |
166 | @@ -30,15 +24,18 @@ |
167 | branch, _ = Branch.open_containing(dir) |
168 | return branch |
169 | |
170 | - def get_push_location(self, branch=None): |
171 | + def get_remote_url(self, branch=None): |
172 | if branch is None: |
173 | branch = self.get_branch() |
174 | - push = branch.get_push_location() |
175 | - if push.startswith('lp:'): |
176 | + url = (branch.get_push_location() or |
177 | + branch.get_parent() or |
178 | + branch.get_submit_branch() or |
179 | + branch.get_bound_location()) |
180 | + if url is not None and url.startswith('lp:'): |
181 | # Convert to bzr+ssh or the calls to WorkingTree fail, |
182 | # inexplicably. |
183 | - push = push.replace('lp:', 'bzr+ssh://bazaar.launchpad.net/') |
184 | - return push |
185 | + url = url.replace('lp:', 'bzr+ssh://bazaar.launchpad.net/') |
186 | + return url |
187 | |
188 | def check_environment(self): |
189 | """Be sure the test environment doesn't exist.""" |
190 | @@ -52,27 +49,14 @@ |
191 | # For some reason 'bzr missing' cannot use a 'lp:' URL. http or |
192 | # bzr+ssh URLs work. |
193 | self.branch = self.get_branch() |
194 | - self.push_location = self.get_push_location(self.branch) |
195 | - if self.push_location is None: |
196 | - raise RuntimeError("Push location must be set.") |
197 | - |
198 | - # Ensure the branch has been pushed and has no missing revisions. |
199 | - try: |
200 | - push_branch = self.get_branch(self.push_location) |
201 | - except NotBranchError: |
202 | - raise RuntimeError( |
203 | - 'The branch has never been pushed to Launchpad.') |
204 | - tree, _ = WorkingTree.open_containing_paths(None) |
205 | - stream = StringIO() |
206 | - show_tree_status(tree, to_file=stream) |
207 | - if stream.getvalue(): |
208 | - raise RuntimeError( |
209 | - 'The tree has uncommitted changes. Check them in ' |
210 | - 'and push to Launchpad.') |
211 | - near, far = find_unmerged(self.branch, push_branch) |
212 | - if near or far: |
213 | - raise RuntimeError('The local branch and the pushed version ' |
214 | - 'have diverged.') |
215 | + self.remote_url = self.get_remote_url(self.branch) |
216 | + if self.remote_url is None: |
217 | + # If no remote_url is found then just skip the rest of the checks |
218 | + # as it may be a run inside the tarmac environment. |
219 | + # This approach is less than ideal but required by tarmac. |
220 | + raise RuntimeError( |
221 | + 'A branch for this code cannot be found on Launchpad, which ' |
222 | + 'is required for the test to run.') |
223 | |
224 | def set_up(self): |
225 | super(InstallLXCTest, self).set_up() |
226 | @@ -89,14 +73,17 @@ |
227 | # Since the most common scenario is to have bzr whoami setup, we do |
228 | # that instead of providing the arguments directly to lpsetup. |
229 | super(InstallLXCTest, self).do_test() |
230 | - urlparts = list(urlparse.urlsplit(self.push_location)) |
231 | + urlparts = list(urlparse.urlsplit(self.remote_url)) |
232 | urlparts[0] = 'http' |
233 | branch_location = urlparse.urlunsplit(urlparts) |
234 | - lp_source = 'http://bazaar.launchpad.net/~yellow/launchpad/stub' |
235 | + lp_source_stub = 'http://bazaar.launchpad.net/~yellow/launchpad/stub' |
236 | + lp_source_deps_stub = ( |
237 | + 'http://bazaar.launchpad.net/~yellow/lp-source-dependencies/stub') |
238 | cmd = ( |
239 | 'lpsetup/lp-setup install-lxc --use-http ' |
240 | - '--source {} -B {} -r {} --yes'.format( |
241 | - lp_source, branch_location, self.repo)) |
242 | + '--source {} -B {} -r {} --yes ' |
243 | + '--lp-source-deps {}'.format( |
244 | + lp_source_stub, branch_location, self.repo, lp_source_deps_stub)) |
245 | self.on_remote(cmd) |
246 | |
247 | |
248 | |
249 | === modified file 'lpsetup/tests/subcommands/test_install_lxc.py' |
250 | --- lpsetup/tests/subcommands/test_install_lxc.py 2012-07-24 10:14:18 +0000 |
251 | +++ lpsetup/tests/subcommands/test_install_lxc.py 2012-08-07 16:13:19 +0000 |
252 | @@ -29,7 +29,7 @@ |
253 | update_in_lxc_step = ( |
254 | install_lxc.update_in_lxc, [ |
255 | 'lxc_name', 'ssh_key_path', 'home_dir', 'user', 'external_path', |
256 | - 'target_dir', 'use_http', |
257 | + 'target_dir', 'lp_source_deps', 'use_http', |
258 | ]) |
259 | |
260 | finish_inithost_in_lxc_step = ( |
261 | |
262 | === modified file 'lpsetup/tests/subcommands/test_update.py' |
263 | --- lpsetup/tests/subcommands/test_update.py 2012-07-20 10:40:43 +0000 |
264 | +++ lpsetup/tests/subcommands/test_update.py 2012-08-07 16:13:19 +0000 |
265 | @@ -26,7 +26,8 @@ |
266 | init_dir_step = ( |
267 | update.initialize_directories, ['target_dir', 'external_path']) |
268 | update_dep_step = ( |
269 | - update.update_dependencies, ['target_dir', 'external_path', 'use_http']) |
270 | + update.update_dependencies, ['target_dir', 'external_path', 'use_http', |
271 | + 'lp_source_deps']) |
272 | update_tree_step = (update.update_tree, ['target_dir']) |
273 | |
274 | |
275 | |
276 | === modified file 'pre-commit.sh' |
277 | --- pre-commit.sh 2012-07-19 17:48:40 +0000 |
278 | +++ pre-commit.sh 2012-08-07 16:13:19 +0000 |
279 | @@ -1,4 +1,12 @@ |
280 | -#!/bin/bash |
281 | - |
282 | +#!/bin/bash -x |
283 | +# Exit on the first failure |
284 | +set -o errexit |
285 | pyfiles=`find . -name build -prune -o -name "*.py" | grep -v distribute_setup.py` |
286 | -pocketlint $pyfiles && pep8 --exclude=build $pyfiles && nosetests |
287 | +pocketlint $pyfiles |
288 | +pep8 --exclude=build $pyfiles |
289 | +nosetests |
290 | +# This script is idempotent, so just try it if --nested-mods is passed. |
291 | +if [ "$1" == "--nested-mods" ]; then |
292 | + sudo bin/setup-host-for-nested-lxc-containers.sh |
293 | +fi |
294 | +lpsetup/tests/integration/test_install_lxc.py |
This branch looks good Brad, thank you.