Merge lp:~gz/maas/move_update_hardware_details_tests into lp:~maas-committers/maas/trunk

Proposed by Martin Packman
Status: Merged
Approved by: Martin Packman
Approved revision: no longer in the source branch.
Merged at revision: 1071
Proposed branch: lp:~gz/maas/move_update_hardware_details_tests
Merge into: lp:~maas-committers/maas/trunk
Prerequisite: lp:~gz/maas/populate_tags
Diff against target: 120 lines (+43/-50)
2 files modified
src/maasserver/tests/test_node.py (+41/-0)
src/metadataserver/tests/test_api.py (+2/-50)
To merge this branch: bzr merge lp:~gz/maas/move_update_hardware_details_tests
Reviewer Review Type Date Requested Status
John A Meinel (community) Approve
Review via email: mp+126226@code.launchpad.net

Commit message

Move tests for updating hardware details under maasserver rather than metadataserver

Description of the change

Simple cleanup of tests added in earlier branches. Moves tests that are really about Node to maasserver.tests.test_node and leaves just the bits verifying that the right thing gets called on metadataserver.tests.test_api. I'd like to just verify the right method on Node got called, but don't want to stub out the method really, so have faked it by checking that memory gets reset to zero.

To post a comment you must log in.
Revision history for this message
John A Meinel (jameinel) :
review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

Attempt to merge into lp:maas failed due to conflicts:

text conflict in src/metadataserver/tests/test_api.py

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/maasserver/tests/test_node.py'
2--- src/maasserver/tests/test_node.py 2012-09-24 11:19:14 +0000
3+++ src/maasserver/tests/test_node.py 2012-09-25 12:18:24 +0000
4@@ -454,6 +454,47 @@
5 node.set_hardware_details(xmlbytes)
6 self.assertEqual(xmlbytes, node.hardware_details)
7
8+ def test_hardware_updates_cpu_count(self):
9+ node = factory.make_node()
10+ xmlbytes = (
11+ '<node id="core">'
12+ '<node id="cpu:0" class="processor"/>'
13+ '<node id="cpu:1" class="processor"/>'
14+ '</node>')
15+ node.set_hardware_details(xmlbytes)
16+ node = reload_object(node)
17+ self.assertEqual(2, node.cpu_count)
18+
19+ def test_hardware_updates_memory(self):
20+ node = factory.make_node()
21+ xmlbytes = (
22+ '<node id="memory">'
23+ '<size units="bytes">4294967296</size>'
24+ '</node>')
25+ node.set_hardware_details(xmlbytes)
26+ node = reload_object(node)
27+ self.assertEqual(4096, node.memory)
28+
29+ def test_hardware_updates_tags_match(self):
30+ tag1 = factory.make_tag(factory.getRandomString(10), "/node")
31+ tag2 = factory.make_tag(factory.getRandomString(10), "//node")
32+ node = factory.make_node()
33+ xmlbytes = '<node/>'
34+ node.set_hardware_details(xmlbytes)
35+ node = reload_object(node)
36+ self.assertEqual([tag1, tag2], list(node.tags.all()))
37+
38+ def test_hardware_updates_tags_no_match(self):
39+ tag1 = factory.make_tag(factory.getRandomString(10), "/missing")
40+ tag2 = factory.make_tag(factory.getRandomString(10), "/nothing")
41+ node = factory.make_node()
42+ node.tags = [tag2]
43+ node.save()
44+ xmlbytes = '<node/>'
45+ node.set_hardware_details(xmlbytes)
46+ node = reload_object(node)
47+ self.assertEqual([], list(node.tags.all()))
48+
49
50 class NodeTransitionsTests(TestCase):
51 """Test the structure of NODE_TRANSITIONS."""
52
53=== modified file 'src/metadataserver/tests/test_api.py'
54--- src/metadataserver/tests/test_api.py 2012-09-25 11:50:40 +0000
55+++ src/metadataserver/tests/test_api.py 2012-09-25 12:18:24 +0000
56@@ -495,62 +495,14 @@
57 self.assertEqual(size_limit, len(stored_data))
58
59 def test_signal_stores_lshw_file_on_node(self):
60- node = factory.make_node(status=NODE_STATUS.COMMISSIONING)
61+ node = factory.make_node(status=NODE_STATUS.COMMISSIONING, memory=512)
62 client = self.make_node_client(node=node)
63 xmlbytes = "<t\xe9st/>".encode("utf-8")
64 response = self.call_signal(client, files={'01-lshw.out': xmlbytes})
65 self.assertEqual(httplib.OK, response.status_code)
66 node = reload_object(node)
67 self.assertEqual(xmlbytes, node.hardware_details)
68-
69- def test_signal_stores_lshw_with_cpu_count(self):
70- node = factory.make_node(status=NODE_STATUS.COMMISSIONING)
71- client = self.make_node_client(node=node)
72- xmlbytes = (
73- '<node id="core">'
74- '<node id="cpu:0" class="processor"/>'
75- '<node id="cpu:1" class="processor"/>'
76- '</node>').encode("utf-8")
77- response = self.call_signal(client, files={'01-lshw.out': xmlbytes})
78- self.assertEqual(httplib.OK, response.status_code)
79- node = reload_object(node)
80- self.assertEqual(2, node.cpu_count)
81-
82- def test_signal_stores_lshw_with_memory(self):
83- node = factory.make_node(status=NODE_STATUS.COMMISSIONING)
84- client = self.make_node_client(node=node)
85- xmlbytes = (
86- '<node id="memory">'
87- '<size units="bytes">4294967296</size>'
88- '</node>').encode("utf-8")
89- response = self.call_signal(client, files={'01-lshw.out': xmlbytes})
90- self.assertEqual(httplib.OK, response.status_code)
91- node = reload_object(node)
92- self.assertEqual(4096, node.memory)
93-
94- def test_signal_lshw_tags_match(self):
95- tag1 = factory.make_tag(factory.getRandomString(10), "/node")
96- tag2 = factory.make_tag(factory.getRandomString(10), "//node")
97- node = factory.make_node(status=NODE_STATUS.COMMISSIONING)
98- client = self.make_node_client(node=node)
99- xmlbytes = '<node/>'.encode("utf-8")
100- response = self.call_signal(client, files={'01-lshw.out': xmlbytes})
101- self.assertEqual(httplib.OK, response.status_code)
102- node = reload_object(node)
103- self.assertEqual([tag1, tag2], list(node.tags.all()))
104-
105- def test_signal_lshw_tags_no_match(self):
106- tag1 = factory.make_tag(factory.getRandomString(10), "/missing")
107- tag2 = factory.make_tag(factory.getRandomString(10), "/nothing")
108- node = factory.make_node(status=NODE_STATUS.COMMISSIONING)
109- node.tags = [tag2]
110- node.save()
111- client = self.make_node_client(node=node)
112- xmlbytes = '<node/>'.encode("utf-8")
113- response = self.call_signal(client, files={'01-lshw.out': xmlbytes})
114- self.assertEqual(httplib.OK, response.status_code)
115- node = reload_object(node)
116- self.assertEqual([], list(node.tags.all()))
117+ self.assertEqual(0, node.memory)
118
119 def test_api_retrieves_node_metadata_by_mac(self):
120 mac = factory.make_mac_address()