1
# Copyright 2012 Canonical Ltd. This software is licensed under the
2
# GNU Affero General Public License version 3 (see the file LICENSE).
4
"""Tests for :class:`User`-related helpers."""
6
from __future__ import (
15
from maasserver.models.user import (
19
from maasserver.testing.factory import factory
20
from maasserver.testing.testcase import TestCase
21
from piston.models import (
27
class AuthTokensTest(TestCase):
28
"""Test creation and retrieval of auth tokens."""
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))
36
def assertConsumerValid(self, consumer):
37
self.assertIsInstance(consumer.key, basestring)
38
self.assertEqual(KEY_SIZE, len(consumer.key))
39
self.assertEqual('', consumer.secret)
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)
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))
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))
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
65
self.assertNotIn(token, get_auth_tokens(user))