~elopio/ubuntu-sso-client/url_vars_tests

« back to all changes in this revision

Viewing changes to ubuntu_sso/tests/test_account.py

  • Committer: Leo Arias
  • Date: 2013-04-19 20:00:50 UTC
  • Revision ID: leo.arias@canonical.com-20130419200050-av0wnn88oamahchg
Added tests for the account service url.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
 
34
34
from __future__ import unicode_literals
35
35
 
 
36
import copy
36
37
import os
37
38
 
38
39
# pylint: disable=W0621,F0401,E0611
53
54
    InvalidEmailError,
54
55
    InvalidPasswordError,
55
56
    NewPasswordError,
56
 
    SERVICE_URL,
57
57
    RegistrationError,
58
58
    ResetPasswordTokenError,
59
59
    SSO_STATUS_OK,
454
454
 
455
455
    def test_override_service_url(self):
456
456
        """The service url can be set from the env var USSOC_SERVICE_URL."""
 
457
        test_environ = copy.copy(os.environ)
457
458
        fake_url = 'this is not really a URL, but ends with slash: /'
458
 
        old_url = os.environ.get('USSOC_SERVICE_URL')
459
 
        os.environ['USSOC_SERVICE_URL'] = fake_url
460
 
        try:
461
 
            proc = Account()
462
 
            self.assertEqual(proc.service_url, fake_url)
463
 
        finally:
464
 
            if old_url:
465
 
                os.environ['USSOC_SERVICE_URL'] = old_url
466
 
            else:
467
 
                del os.environ['USSOC_SERVICE_URL']
 
459
        test_environ['USSOC_SERVICE_URL'] = fake_url
 
460
        self.patch(os, 'environ', test_environ)
 
461
        proc = Account()
 
462
        self.assertEqual(proc.service_url, fake_url)
468
463
 
469
 
    def test_no_override_service_url(self):
 
464
    def test_default_service_url(self):
470
465
        """If the environ is unset, the default service url is used."""
471
 
        proc = Account()
472
 
        self.assertEqual(proc.service_url, SERVICE_URL)
 
466
        self.addCleanup(reload, account)
 
467
        test_environ = copy.copy(os.environ)
 
468
        for variable in ('SSO_AUTH_BASE_URL', 'USSOC_SERVICE_URL'):
 
469
            if variable in test_environ:
 
470
                del test_environ[variable]
 
471
        self.patch(os, 'environ', test_environ)
 
472
        reload(account)
 
473
        proc = account.Account()
 
474
        self.assertEqual(proc.service_url, 'https://login.ubuntu.com/api/1.0/')
473
475
 
474
476
    def test_service_url_as_parameter(self):
475
477
        """If the parameter service url is given, is used."""
476
478
        expected = 'http://foo/bar/baz/'
477
479
        proc = Account(service_url=expected)
478
480
        self.assertEqual(proc.service_url, expected)
 
481
 
 
482
    def test_service_url_from_sso_auth_var(self):
 
483
        """If the env var SSO_AUTH_BASE_URL is set, it's used as base URL."""
 
484
        self.addCleanup(reload, account)
 
485
        test_environ = copy.copy(os.environ)
 
486
        test_environ['SSO_AUTH_BASE_URL'] = 'http://login.test.url'
 
487
        if 'USSOC_SERVICE_URL' in test_environ:
 
488
            del test_environ['USSOC_SERVICE_URL']
 
489
        self.patch(os, 'environ', test_environ)
 
490
        reload(account)
 
491
        test_account = account.Account()
 
492
        self.assertEqual(
 
493
            test_account.service_url, 'http://login.test.url/api/1.0/')