~ubuntu-branches/ubuntu/raring/maas/raring-updates

« back to all changes in this revision

Viewing changes to src/metadataserver/tests/test_models.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:
12
12
__metaclass__ = type
13
13
__all__ = []
14
14
 
15
 
from django.db import IntegrityError
 
15
from django.core.exceptions import ValidationError
16
16
from django.http import Http404
17
17
from maasserver.testing.factory import factory
18
 
from maastesting.testcase import TestCase
 
18
from maastesting.djangotestcase import DjangoTestCase
19
19
from metadataserver.models import (
20
20
    NodeCommissionResult,
21
21
    NodeKey,
22
 
    NodeUserData,
23
22
    )
24
23
 
25
24
 
26
 
class TestNodeKeyManager(TestCase):
 
25
class TestNodeKeyManager(DjangoTestCase):
 
26
# Scheduled for model migration on 2012-07-04
27
27
    """Test NodeKeyManager."""
28
28
 
29
 
    def setUp(self):
30
 
        super(TestNodeKeyManager, self).setUp()
31
 
 
32
29
    def test_get_token_for_node_registers_node_key(self):
33
30
        node = factory.make_node()
34
31
        token = NodeKey.objects.get_token_for_node(node)
72
69
                NodeKey.objects.get_node_for_key(key)).key)
73
70
 
74
71
 
75
 
class TestNodeUserDataManager(TestCase):
76
 
    """Test NodeUserDataManager."""
77
 
 
78
 
    def setUp(self):
79
 
        super(TestNodeUserDataManager, self).setUp()
80
 
 
81
 
    def test_set_user_data_creates_new_nodeuserdata_if_needed(self):
82
 
        node = factory.make_node()
83
 
        data = b'foo'
84
 
        NodeUserData.objects.set_user_data(node, data)
85
 
        self.assertEqual(data, NodeUserData.objects.get(node=node).data)
86
 
 
87
 
    def test_set_user_data_overwrites_existing_userdata(self):
88
 
        node = factory.make_node()
89
 
        data = b'bar'
90
 
        NodeUserData.objects.set_user_data(node, b'old data')
91
 
        NodeUserData.objects.set_user_data(node, data)
92
 
        self.assertEqual(data, NodeUserData.objects.get(node=node).data)
93
 
 
94
 
    def test_set_user_data_leaves_data_for_other_nodes_alone(self):
95
 
        node = factory.make_node()
96
 
        NodeUserData.objects.set_user_data(node, b'intact')
97
 
        NodeUserData.objects.set_user_data(factory.make_node(), b'unrelated')
98
 
        self.assertEqual(b'intact', NodeUserData.objects.get(node=node).data)
99
 
 
100
 
    def test_set_user_data_to_None_removes_user_data(self):
101
 
        node = factory.make_node()
102
 
        NodeUserData.objects.set_user_data(node, b'original')
103
 
        NodeUserData.objects.set_user_data(node, None)
104
 
        self.assertItemsEqual([], NodeUserData.objects.filter(node=node))
105
 
 
106
 
    def test_set_user_data_to_None_when_none_exists_does_nothing(self):
107
 
        node = factory.make_node()
108
 
        NodeUserData.objects.set_user_data(node, None)
109
 
        self.assertItemsEqual([], NodeUserData.objects.filter(node=node))
110
 
 
111
 
    def test_get_user_data_retrieves_data(self):
112
 
        node = factory.make_node()
113
 
        data = b'splat'
114
 
        NodeUserData.objects.set_user_data(node, data)
115
 
        self.assertEqual(data, NodeUserData.objects.get_user_data(node))
116
 
 
117
 
    def test_get_user_data_raises_DoesNotExist_if_not_found(self):
118
 
        node = factory.make_node()
119
 
        self.assertRaises(
120
 
            NodeUserData.DoesNotExist,
121
 
            NodeUserData.objects.get_user_data, node)
122
 
 
123
 
    def test_get_user_data_ignores_other_nodes(self):
124
 
        node = factory.make_node()
125
 
        data = b'bzzz'
126
 
        NodeUserData.objects.set_user_data(node, data)
127
 
        NodeUserData.objects.set_user_data(factory.make_node(), b'unrelated')
128
 
        self.assertEqual(data, NodeUserData.objects.get_user_data(node))
129
 
 
130
 
    def test_has_user_data_returns_False_if_node_has_no_user_data(self):
131
 
        self.assertFalse(
132
 
            NodeUserData.objects.has_user_data(factory.make_node()))
133
 
 
134
 
    def test_has_user_data_returns_True_if_node_has_user_data(self):
135
 
        node = factory.make_node()
136
 
        NodeUserData.objects.set_user_data(node, b"This node has user data.")
137
 
        self.assertTrue(NodeUserData.objects.has_user_data(node))
138
 
 
139
 
 
140
 
class TestNodeCommissionResult(TestCase):
 
72
class TestNodeCommissionResult(DjangoTestCase):
141
73
    """Test the NodeCommissionResult model."""
142
74
 
143
75
    def test_can_store_data(self):
155
87
        node = factory.make_node()
156
88
        factory.make_node_commission_result(node=node, name="foo")
157
89
        self.assertRaises(
158
 
            IntegrityError,
 
90
            ValidationError,
159
91
            factory.make_node_commission_result, node=node, name="foo")
160
92
 
161
93
    def test_different_nodes_can_have_same_data_name(self):
166
98
        self.assertEqual(ncr1.name, ncr2.name)
167
99
 
168
100
 
169
 
class TestNodeCommissionResultManager(TestCase):
 
101
class TestNodeCommissionResultManager(DjangoTestCase):
170
102
    """Test the manager utility for NodeCommissionResult."""
171
103
 
172
104
    def test_clear_results_removes_rows(self):