~ubuntu-branches/ubuntu/quantal/maas/quantal-updates

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_user.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez
  • Date: 2012-07-03 17:42:37 UTC
  • mfrom: (1.1.13)
  • Revision ID: package-import@ubuntu.com-20120703174237-p8l0keuuznfg721k
Tags: 0.1+bzr709+dfsg-0ubuntu1
* New Upstream release
* debian/control:
  - Depends on python-celery, python-tempita, libjs-yui3-{full,min},
    libjs-raphael
* debian/maas.install:
  - Install apiclient, celeryconfig.py, maas-import-pxe-files, preseeds_v2.
  - Update to install various files from chroot, rather tha manually copy
    them from the source.
* debian/maas.links: symlink celeryconfig.py
* debian/maas.maas-celery.upstart: Add job.
* debian/rules:
  - Install celery upstart job.
  - Do not install jslibs as packages are now used.
  - Drop copying of maas_local_settings_sample.py as source now ships
    a maas_local_settings.py
* debian/patches:
  - 04-maas-http-fix.patch: Drop. Merged upstream.
  - 01-fix-database-settings.patch: Refreshed.
  - 99_enums_js.patch: Added until creation of enum.js / build process
    is fixed.
* debian/maas.postinst: Update bzr version to correctly handle upgrades.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright 2012 Canonical Ltd.  This software is licensed under the
 
2
# GNU Affero General Public License version 3 (see the file LICENSE).
 
3
 
 
4
"""Tests for :class:`User`-related helpers."""
 
5
 
 
6
from __future__ import (
 
7
    absolute_import,
 
8
    print_function,
 
9
    unicode_literals,
 
10
    )
 
11
 
 
12
__metaclass__ = type
 
13
__all__ = []
 
14
 
 
15
from maasserver.models.user import (
 
16
    create_auth_token,
 
17
    get_auth_tokens,
 
18
    )
 
19
from maasserver.testing.factory import factory
 
20
from maasserver.testing.testcase import TestCase
 
21
from piston.models import (
 
22
    KEY_SIZE,
 
23
    SECRET_SIZE,
 
24
    )
 
25
 
 
26
 
 
27
class AuthTokensTest(TestCase):
 
28
    """Test creation and retrieval of auth tokens."""
 
29
 
 
30
    def assertTokenValid(self, token):
 
31
        self.assertIsInstance(token.key, basestring)
 
32
        self.assertEqual(KEY_SIZE, len(token.key))
 
33
        self.assertIsInstance(token.secret, basestring)
 
34
        self.assertEqual(SECRET_SIZE, len(token.secret))
 
35
 
 
36
    def assertConsumerValid(self, consumer):
 
37
        self.assertIsInstance(consumer.key, basestring)
 
38
        self.assertEqual(KEY_SIZE, len(consumer.key))
 
39
        self.assertEqual('', consumer.secret)
 
40
 
 
41
    def test_create_auth_token(self):
 
42
        user = factory.make_user()
 
43
        token = create_auth_token(user)
 
44
        self.assertEqual(user, token.user)
 
45
        self.assertEqual(user, token.consumer.user)
 
46
        self.assertTrue(token.is_approved)
 
47
        self.assertConsumerValid(token.consumer)
 
48
        self.assertTokenValid(token)
 
49
 
 
50
    def test_get_auth_tokens_finds_tokens_for_user(self):
 
51
        user = factory.make_user()
 
52
        token = create_auth_token(user)
 
53
        self.assertIn(token, get_auth_tokens(user))
 
54
 
 
55
    def test_get_auth_tokens_ignores_other_users(self):
 
56
        user, other_user = factory.make_user(), factory.make_user()
 
57
        unrelated_token = create_auth_token(other_user)
 
58
        self.assertNotIn(unrelated_token, get_auth_tokens(user))
 
59
 
 
60
    def test_get_auth_tokens_ignores_unapproved_tokens(self):
 
61
        user = factory.make_user()
 
62
        token = create_auth_token(user)
 
63
        token.is_approved = False
 
64
        token.save()
 
65
        self.assertNotIn(token, get_auth_tokens(user))