~benji/charms/precise/juju-gui/use-known-pip

« back to all changes in this revision

Viewing changes to tests/20-functional.test

  • Committer: Francesco Banconi
  • Date: 2013-10-08 07:49:30 UTC
  • mfrom: (113.1.8 support-firewall)
  • Revision ID: francesco.banconi@canonical.com-20131008074930-t0y5nuq46r08hmaz
Avoid installing from PPA if not required.

No longer add the juju-gui PPA by default:
the external repository is added only if required,
i.e. if the legacy server is used or if a branch
is passed to juju-gui-source.

The only missing bit to make the charm work well
from behind a firewall AFAICT is avoiding the release 
to be downloaded from Launchpad.

Also included the shelltoolbox file in the charm:
unfortunately the python-shelltoolbox package is
not available on precise. On the other hand, this
allows for getting rid of the bootstrap_utils.py
file, and the install hook now feels cleaner.

Refactoring + some magic removal on the backend
framework. Now it should be less surprising, and
also allows for more customizations, e.g. what
I did in the install method.

Also added missing tests for the backend framework:
those were required in order to increase our control
over what's really happening in the backend "hooks".

Switched to the builtin Tornado server by default.

This diff is very big, I am sorry, but:
- you can ignore the bootstrap_utils removal;
- you can ignore the shelltoolbox.py file: it is
  just a copy of the one present in the raring
  python-shelltoolbox package;
- a lot of code is tests, the rest of the code
  should be quite easy to follow.

QA:
    `make deploy` and watch the logs:
    - no PPA should be installed by default;
    - the deployment succeeds and the GUI works well;
    switch to builtin-server=false and watch the logs:
    - the PPA is installed (and then haproxy, apache...);
    - the config-change hook exits without errors and
      the GUI works well.

Tests:
    `make unittest`
    (I ran the functional tests myself).


Thank you!

R=gary.poster, rharding
CC=
https://codereview.appspot.com/14433049

Show diffs side-by-side

added added

removed removed

Lines of Context:
207
207
 
208
208
    def test_cache_headers(self):
209
209
        # Make sure the correct cache headers are sent.
210
 
        unit_info = self.juju_deploy(
211
 
            self.charm, options={'juju-gui-source': JUJU_GUI_TEST_BRANCH})
 
210
        options = {
 
211
            'builtin-server': False,
 
212
            'juju-gui-source': JUJU_GUI_TEST_BRANCH,
 
213
        }
 
214
        unit_info = self.juju_deploy(self.charm, options=options)
212
215
        hostname = unit_info['public-address']
213
216
        conn = httplib.HTTPSConnection(hostname)
214
217
        conn.request('HEAD', '/')