Merge ~adam-collard/maas:no-assertItemsEqual-provisioningserver into maas:master
- Git
- lp:~adam-collard/maas
- no-assertItemsEqual-provisioningserver
- Merge into master
Proposed by
Adam Collard
Status: | Merged |
---|---|
Approved by: | Adam Collard |
Approved revision: | 3ad3aed755c86da7791f007adc5b542db21d4f33 |
Merge reported by: | MAAS Lander |
Merged at revision: | not available |
Proposed branch: | ~adam-collard/maas:no-assertItemsEqual-provisioningserver |
Merge into: | maas:master |
Diff against target: |
1997 lines (+195/-251) 54 files modified
src/maasserver/api/tests/test_raid.py (+6/-6) src/maasserver/models/tests/test_node.py (+6/-9) src/provisioningserver/boot/tests/test_tftppath.py (+15/-15) src/provisioningserver/dhcp/tests/test_config.py (+2/-2) src/provisioningserver/dns/tests/test_zoneconfig.py (+13/-13) src/provisioningserver/drivers/hardware/tests/test_ucsm.py (+1/-56) src/provisioningserver/drivers/hardware/tests/test_virsh.py (+2/-2) src/provisioningserver/drivers/osystem/tests/test_base.py (+5/-5) src/provisioningserver/drivers/osystem/tests/test_bootloader.py (+1/-1) src/provisioningserver/drivers/osystem/tests/test_ubuntucore.py (+1/-1) src/provisioningserver/drivers/osystem/tests/test_windows.py (+4/-4) src/provisioningserver/drivers/pod/tests/test_lxd.py (+2/-2) src/provisioningserver/drivers/pod/tests/test_registry.py (+2/-2) src/provisioningserver/drivers/pod/tests/test_virsh.py (+15/-15) src/provisioningserver/drivers/power/tests/test_amt.py (+2/-2) src/provisioningserver/drivers/power/tests/test_apc.py (+2/-2) src/provisioningserver/drivers/power/tests/test_dli.py (+2/-2) src/provisioningserver/drivers/power/tests/test_eaton.py (+2/-2) src/provisioningserver/drivers/power/tests/test_hmc.py (+1/-1) src/provisioningserver/drivers/power/tests/test_ipmi.py (+2/-2) src/provisioningserver/drivers/power/tests/test_manual.py (+1/-1) src/provisioningserver/drivers/power/tests/test_moonshot.py (+2/-2) src/provisioningserver/drivers/power/tests/test_mscm.py (+1/-1) src/provisioningserver/drivers/power/tests/test_msftocs.py (+1/-1) src/provisioningserver/drivers/power/tests/test_nova.py (+2/-2) src/provisioningserver/drivers/power/tests/test_openbmc.py (+1/-1) src/provisioningserver/drivers/power/tests/test_recs.py (+2/-2) src/provisioningserver/drivers/power/tests/test_redfish.py (+1/-1) src/provisioningserver/drivers/power/tests/test_registry.py (+2/-2) src/provisioningserver/drivers/power/tests/test_seamicro.py (+3/-3) src/provisioningserver/drivers/power/tests/test_ucsm.py (+2/-2) src/provisioningserver/drivers/power/tests/test_vmware.py (+4/-4) src/provisioningserver/drivers/power/tests/test_webhook.py (+1/-1) src/provisioningserver/drivers/power/tests/test_wedge.py (+1/-1) src/provisioningserver/drivers/tests/test_base.py (+1/-1) src/provisioningserver/import_images/tests/test_boot_image_mapping.py (+5/-5) src/provisioningserver/import_images/tests/test_boot_resources.py (+2/-2) src/provisioningserver/import_images/tests/test_cleanup.py (+5/-5) src/provisioningserver/import_images/tests/test_download_descriptions.py (+10/-10) src/provisioningserver/import_images/tests/test_product_mapping.py (+1/-1) src/provisioningserver/rackdservices/tests/test_tftp.py (+1/-1) src/provisioningserver/tests/test_config.py (+1/-1) src/provisioningserver/tests/test_events.py (+1/-1) src/provisioningserver/tests/test_service_monitor.py (+3/-3) src/provisioningserver/tests/test_tags.py (+1/-1) src/provisioningserver/tests/test_upgrade_cluster.py (+3/-3) src/provisioningserver/utils/tests/test_arp.py (+8/-8) src/provisioningserver/utils/tests/test_enum.py (+2/-2) src/provisioningserver/utils/tests/test_events.py (+7/-8) src/provisioningserver/utils/tests/test_ipaddr.py (+2/-2) src/provisioningserver/utils/tests/test_network.py (+7/-7) src/provisioningserver/utils/tests/test_ps.py (+6/-6) src/provisioningserver/utils/tests/test_registry.py (+2/-2) src/provisioningserver/utils/tests/test_utils.py (+17/-14) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alberto Donato (community) | Approve | ||
MAAS Lander | Needs Fixing | ||
Review via email: mp+408726@code.launchpad.net |
Commit message
[provisioningse
Description of the change
To post a comment you must log in.
- 7ee71e1... by Adam Collard
-
Fix order sensitive test
Revision history for this message
MAAS Lander (maas-lander) wrote : | # |
UNIT TESTS
-b no-assertItemsE
STATUS: FAILED
LOG: http://
COMMIT: 7ee71e19649a6df
review:
Needs Fixing
Revision history for this message
Alberto Donato (ack) wrote : | # |
minor nits inline
it seems some tests are failing because of expected ordering, though
- 3ad3aed... by Adam Collard
-
Address feedback from ack
Revision history for this message
MAAS Lander (maas-lander) wrote : | # |
UNIT TESTS
-b no-assertItemsE
STATUS: FAILED
LOG: http://
COMMIT: 3ad3aed755c86da
review:
Needs Fixing
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/src/maasserver/api/tests/test_raid.py b/src/maasserver/api/tests/test_raid.py |
2 | index e174cfd..832d9f5 100644 |
3 | --- a/src/maasserver/api/tests/test_raid.py |
4 | +++ b/src/maasserver/api/tests/test_raid.py |
5 | @@ -231,7 +231,7 @@ class TestRaidsAPI(APITestCase.ForUser): |
6 | (10 * PART_SIZE) - RAID_SUPERBLOCK_OVERHEAD, parsed_device["size"] |
7 | ) |
8 | self.assertEqual(uuid4, parsed_device["uuid"]) |
9 | - self.assertEqual(block_devices, parsed_block_devices) |
10 | + self.assertCountEqual(block_devices, parsed_block_devices) |
11 | self.assertCountEqual(partitions, parsed_partitions) |
12 | self.assertEqual([], parsed_block_device_spares) |
13 | self.assertEqual([], parsed_partition_spares) |
14 | @@ -323,7 +323,7 @@ class TestRaidsAPI(APITestCase.ForUser): |
15 | PART_SIZE - RAID_SUPERBLOCK_OVERHEAD, parsed_device["size"] |
16 | ) |
17 | self.assertEqual(uuid4, parsed_device["uuid"]) |
18 | - self.assertEqual(block_devices, parsed_block_devices) |
19 | + self.assertCountEqual(block_devices, parsed_block_devices) |
20 | self.assertCountEqual(partitions, parsed_partitions) |
21 | self.assertEqual([], parsed_block_device_spares) |
22 | self.assertEqual([], parsed_partition_spares) |
23 | @@ -379,7 +379,7 @@ class TestRaidsAPI(APITestCase.ForUser): |
24 | PART_SIZE - RAID_SUPERBLOCK_OVERHEAD, parsed_device["size"] |
25 | ) |
26 | self.assertEqual(uuid4, parsed_device["uuid"]) |
27 | - self.assertEqual(block_devices, parsed_block_devices) |
28 | + self.assertCountEqual(block_devices, parsed_block_devices) |
29 | self.assertCountEqual(partitions, parsed_partitions) |
30 | self.assertEqual(spare_devices, parsed_block_device_spares) |
31 | self.assertEqual(spare_partitions, parsed_partition_spares) |
32 | @@ -438,7 +438,7 @@ class TestRaidsAPI(APITestCase.ForUser): |
33 | (7 * large_partitions[0].size) - RAID_SUPERBLOCK_OVERHEAD, |
34 | parsed_device["size"], |
35 | ) |
36 | - self.assertEqual(block_devices, parsed_block_devices) |
37 | + self.assertCountEqual(block_devices, parsed_block_devices) |
38 | self.assertCountEqual(partitions, parsed_partitions) |
39 | self.assertEqual(spare_devices, parsed_block_device_spares) |
40 | self.assertEqual(spare_partitions, parsed_partition_spares) |
41 | @@ -498,7 +498,7 @@ class TestRaidsAPI(APITestCase.ForUser): |
42 | (6 * large_partitions[0].size) - RAID_SUPERBLOCK_OVERHEAD, |
43 | parsed_device["size"], |
44 | ) |
45 | - self.assertEqual(block_devices, parsed_block_devices) |
46 | + self.assertCountEqual(block_devices, parsed_block_devices) |
47 | self.assertCountEqual(partitions, parsed_partitions) |
48 | self.assertEqual(spare_devices, parsed_block_device_spares) |
49 | self.assertEqual(spare_partitions, parsed_partition_spares) |
50 | @@ -558,7 +558,7 @@ class TestRaidsAPI(APITestCase.ForUser): |
51 | (4 * large_partitions[0].size) - RAID_SUPERBLOCK_OVERHEAD, |
52 | parsed_device["size"], |
53 | ) |
54 | - self.assertEqual(block_devices, parsed_block_devices) |
55 | + self.assertCountEqual(block_devices, parsed_block_devices) |
56 | self.assertCountEqual(partitions, parsed_partitions) |
57 | self.assertEqual(spare_devices, parsed_block_device_spares) |
58 | self.assertEqual(spare_partitions, parsed_partition_spares) |
59 | diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py |
60 | index 0b31991..61c2069 100644 |
61 | --- a/src/maasserver/models/tests/test_node.py |
62 | +++ b/src/maasserver/models/tests/test_node.py |
63 | @@ -324,9 +324,8 @@ class TestNodeGetLatestScriptResults(MAASServerTestCase): |
64 | factory.make_ScriptResult(script=script, script_set=script_set) |
65 | ) |
66 | |
67 | - self.assertEqual( |
68 | - sorted(latest_script_results, key=lambda x: x.name), |
69 | - list(node.get_latest_script_results), |
70 | + self.assertCountEqual( |
71 | + latest_script_results, node.get_latest_script_results |
72 | ) |
73 | |
74 | def test_get_latest_script_results_storage(self): |
75 | @@ -403,9 +402,8 @@ class TestNodeGetLatestScriptResults(MAASServerTestCase): |
76 | if script.script_type == SCRIPT_TYPE.COMMISSIONING: |
77 | latest_script_results.append(script_result) |
78 | |
79 | - self.assertEqual( |
80 | - sorted(latest_script_results, key=lambda x: x.name), |
81 | - list(node.get_latest_commissioning_script_results), |
82 | + self.assertCountEqual( |
83 | + latest_script_results, node.get_latest_commissioning_script_results |
84 | ) |
85 | |
86 | def test_get_latest_testing_script_results(self): |
87 | @@ -428,9 +426,8 @@ class TestNodeGetLatestScriptResults(MAASServerTestCase): |
88 | if script.script_type == SCRIPT_TYPE.TESTING: |
89 | latest_script_results.append(script_result) |
90 | |
91 | - self.assertEqual( |
92 | - sorted(latest_script_results, key=lambda x: x.name), |
93 | - list(node.get_latest_testing_script_results), |
94 | + self.assertCountEqual( |
95 | + latest_script_results, node.get_latest_testing_script_results |
96 | ) |
97 | |
98 | def test_get_latest_installation_script_results(self): |
99 | diff --git a/src/provisioningserver/boot/tests/test_tftppath.py b/src/provisioningserver/boot/tests/test_tftppath.py |
100 | index b3e0f81..1242688 100644 |
101 | --- a/src/provisioningserver/boot/tests/test_tftppath.py |
102 | +++ b/src/provisioningserver/boot/tests/test_tftppath.py |
103 | @@ -148,7 +148,7 @@ class TestTFTPPath(MAASTestCase): |
104 | self.make_image_dir(params, self.tftproot) |
105 | purposes = ["install", "commissioning", "xinstall"] |
106 | make_osystem(self, params["osystem"], purposes) |
107 | - self.assertItemsEqual( |
108 | + self.assertCountEqual( |
109 | [make_image(params, purpose) for purpose in purposes], |
110 | list_boot_images(self.tftproot), |
111 | ) |
112 | @@ -159,7 +159,7 @@ class TestTFTPPath(MAASTestCase): |
113 | for param in params: |
114 | self.make_image_dir(param, self.tftproot) |
115 | make_osystem(self, param["osystem"], purposes) |
116 | - self.assertItemsEqual( |
117 | + self.assertCountEqual( |
118 | [ |
119 | make_image(param, purpose) |
120 | for param in params |
121 | @@ -178,7 +178,7 @@ class TestTFTPPath(MAASTestCase): |
122 | make_osystem(self, params["osystem"], purposes) |
123 | # The API requires "supported_subarches". |
124 | expected_metadata = dict(supported_subarches=metadata["subarches"]) |
125 | - self.assertItemsEqual( |
126 | + self.assertCountEqual( |
127 | [ |
128 | make_image(params, purpose, expected_metadata) |
129 | for purpose in purposes |
130 | @@ -190,7 +190,7 @@ class TestTFTPPath(MAASTestCase): |
131 | params = [make_boot_image_storage_params() for counter in range(3)] |
132 | for param in params: |
133 | self.make_image_dir(param, self.tftproot) |
134 | - self.assertItemsEqual([], list_boot_images(self.tftproot)) |
135 | + self.assertEqual([], list_boot_images(self.tftproot)) |
136 | |
137 | def test_is_visible_subdir_ignores_regular_files(self): |
138 | plain_file = self.make_file() |
139 | @@ -213,14 +213,14 @@ class TestTFTPPath(MAASTestCase): |
140 | self.assertTrue(is_visible_subdir(base_dir, subdir)) |
141 | |
142 | def test_list_subdirs_lists_empty_directory(self): |
143 | - self.assertItemsEqual([], list_subdirs(self.make_dir())) |
144 | + self.assertEqual([], list_subdirs(self.make_dir())) |
145 | |
146 | def test_list_subdirs_lists_subdirs(self): |
147 | base_dir = self.make_dir() |
148 | factory.make_file(base_dir, factory.make_name("plain-file")) |
149 | subdir = factory.make_name("subdir") |
150 | os.makedirs(os.path.join(base_dir, subdir)) |
151 | - self.assertItemsEqual([subdir], list_subdirs(base_dir)) |
152 | + self.assertEqual([subdir], list_subdirs(base_dir)) |
153 | |
154 | def test_extend_path_finds_path_extensions(self): |
155 | base_dir = self.make_dir() |
156 | @@ -229,7 +229,7 @@ class TestTFTPPath(MAASTestCase): |
157 | ] |
158 | for subdir in subdirs: |
159 | os.makedirs(os.path.join(base_dir, subdir)) |
160 | - self.assertItemsEqual( |
161 | + self.assertCountEqual( |
162 | [[os.path.basename(base_dir), subdir] for subdir in subdirs], |
163 | extend_path( |
164 | os.path.dirname(base_dir), [os.path.basename(base_dir)] |
165 | @@ -246,7 +246,7 @@ class TestTFTPPath(MAASTestCase): |
166 | ) |
167 | |
168 | def test_extend_path_stops_if_no_subdirs_found(self): |
169 | - self.assertItemsEqual([], extend_path(self.make_dir(), [])) |
170 | + self.assertCountEqual([], extend_path(self.make_dir(), [])) |
171 | |
172 | def test_drill_down_follows_directory_tree(self): |
173 | base_dir = self.make_dir() |
174 | @@ -257,7 +257,7 @@ class TestTFTPPath(MAASTestCase): |
175 | ] |
176 | for subdir in subdirs: |
177 | os.makedirs(os.path.join(base_dir, lower_dir, subdir)) |
178 | - self.assertItemsEqual( |
179 | + self.assertCountEqual( |
180 | [[lower_dir, subdir] for subdir in subdirs], |
181 | drill_down(base_dir, [[lower_dir]]), |
182 | ) |
183 | @@ -270,7 +270,7 @@ class TestTFTPPath(MAASTestCase): |
184 | relevant_subdir = factory.make_name("subdir") |
185 | os.makedirs(os.path.join(base_dir, irrelevant_dir, irrelevant_subdir)) |
186 | os.makedirs(os.path.join(base_dir, relevant_dir, relevant_subdir)) |
187 | - self.assertEqual( |
188 | + self.assertCountEqual( |
189 | [[relevant_dir, relevant_subdir]], |
190 | drill_down(base_dir, [[relevant_dir]]), |
191 | ) |
192 | @@ -391,7 +391,7 @@ class TestTFTPPath(MAASTestCase): |
193 | |
194 | params = extract_image_params(path, "") |
195 | |
196 | - self.assertItemsEqual( |
197 | + self.assertCountEqual( |
198 | [ |
199 | { |
200 | "osystem": osystem, |
201 | @@ -458,7 +458,7 @@ class TestTFTPPath(MAASTestCase): |
202 | |
203 | params = extract_image_params(path, maas_meta) |
204 | |
205 | - self.assertItemsEqual( |
206 | + self.assertCountEqual( |
207 | [ |
208 | { |
209 | "osystem": osystem, |
210 | @@ -504,7 +504,7 @@ class TestTFTPPath(MAASTestCase): |
211 | |
212 | params = extract_image_params(path, "") |
213 | |
214 | - self.assertItemsEqual( |
215 | + self.assertCountEqual( |
216 | [ |
217 | { |
218 | "osystem": "bootloader", |
219 | @@ -537,7 +537,7 @@ class TestTFTPPath(MAASTestCase): |
220 | |
221 | params = extract_image_params(path, "") |
222 | |
223 | - self.assertItemsEqual( |
224 | + self.assertCountEqual( |
225 | [ |
226 | { |
227 | "osystem": osystem, |
228 | @@ -604,7 +604,7 @@ class TestTFTPPath(MAASTestCase): |
229 | |
230 | params = extract_image_params(path, maas_meta) |
231 | |
232 | - self.assertItemsEqual( |
233 | + self.assertCountEqual( |
234 | [ |
235 | { |
236 | "osystem": osystem, |
237 | diff --git a/src/provisioningserver/dhcp/tests/test_config.py b/src/provisioningserver/dhcp/tests/test_config.py |
238 | index fdbbb53..1b4f654 100644 |
239 | --- a/src/provisioningserver/dhcp/tests/test_config.py |
240 | +++ b/src/provisioningserver/dhcp/tests/test_config.py |
241 | @@ -344,7 +344,7 @@ class TestGetConfig(MAASTestCase): |
242 | ) |
243 | for server in server_line.split(", ") |
244 | ] |
245 | - self.assertItemsEqual(ntp_servers_expected, ntp_servers_observed) |
246 | + self.assertCountEqual(ntp_servers_expected, ntp_servers_observed) |
247 | |
248 | def test_renders_without_ntp_servers_set(self): |
249 | params = make_sample_params(self, ipv6=self.ipv6) |
250 | @@ -373,7 +373,7 @@ class TestGetConfig(MAASTestCase): |
251 | ) |
252 | for server in server_line.split(", ") |
253 | ] |
254 | - self.assertItemsEqual(ntp_servers_expected, ntp_servers_observed) |
255 | + self.assertCountEqual(ntp_servers_expected, ntp_servers_observed) |
256 | |
257 | def test_renders_router_ip_if_present(self): |
258 | params = make_sample_params(self, ipv6=self.ipv6) |
259 | diff --git a/src/provisioningserver/dns/tests/test_zoneconfig.py b/src/provisioningserver/dns/tests/test_zoneconfig.py |
260 | index 97c8f95..767b947 100644 |
261 | --- a/src/provisioningserver/dns/tests/test_zoneconfig.py |
262 | +++ b/src/provisioningserver/dns/tests/test_zoneconfig.py |
263 | @@ -136,7 +136,7 @@ class TestDNSForwardZoneConfig(MAASTestCase): |
264 | ] |
265 | expect = [(n, t, ip) for n, t, ip in expected] |
266 | actual = DNSForwardZoneConfig.get_A_mapping(combined_mapping, ns_ttl) |
267 | - self.assertItemsEqual(expect, actual) |
268 | + self.assertCountEqual(expect, actual) |
269 | |
270 | def test_get_aaaa_mapping_returns_ipv6_mapping(self): |
271 | ttl = random.randint(10, 300) |
272 | @@ -163,7 +163,7 @@ class TestDNSForwardZoneConfig(MAASTestCase): |
273 | ipv4_mapping.items(), ipv6_mapping.items() |
274 | ) |
275 | } |
276 | - self.assertItemsEqual( |
277 | + self.assertCountEqual( |
278 | [ |
279 | (n, info.ttl, ip) |
280 | for n, info in ipv6_mapping.items() |
281 | @@ -489,7 +489,7 @@ class TestDNSReverseZoneConfig(MAASTestCase): |
282 | # And that the zone names chosen for each element are correct. |
283 | for net in range(len(expected)): |
284 | for zi in range(len(expected[net][1])): |
285 | - self.assertItemsEqual( |
286 | + self.assertCountEqual( |
287 | expected[net][1][zi].zone_name, |
288 | results[net][1][zi].zone_name, |
289 | ) |
290 | @@ -589,7 +589,7 @@ class TestDNSReverseZoneConfig(MAASTestCase): |
291 | "%s.%s" % (hostname, name): HostnameIPMapping(None, 30, {ip}) |
292 | for hostname, ip in hosts.items() |
293 | } |
294 | - self.assertItemsEqual( |
295 | + self.assertCountEqual( |
296 | expected, DNSReverseZoneConfig.get_PTR_mapping(mapping, network) |
297 | ) |
298 | |
299 | @@ -617,7 +617,7 @@ class TestDNSReverseZoneConfig(MAASTestCase): |
300 | factory.make_string(): HostnameIPMapping(None, 30, ["192.70.0.2"]), |
301 | } |
302 | mapping.update(extra_mapping) |
303 | - self.assertItemsEqual( |
304 | + self.assertCountEqual( |
305 | expected, DNSReverseZoneConfig.get_PTR_mapping(mapping, network) |
306 | ) |
307 | |
308 | @@ -756,7 +756,7 @@ class TestDNSReverseZoneConfig_GetGenerateDirectives(MAASTestCase): |
309 | ("0-255", "$.1.168.192.in-addr.arpa.", "192-168-1-$.domain."), |
310 | ("0-128", "$.2.168.192.in-addr.arpa.", "192-168-2-$.domain."), |
311 | ] |
312 | - self.assertItemsEqual( |
313 | + self.assertCountEqual( |
314 | expected_directives, |
315 | DNSReverseZoneConfig.get_GENERATE_directives( |
316 | ip_range, |
317 | @@ -826,7 +826,7 @@ class TestDNSReverseZoneConfig_GetGenerateDirectives(MAASTestCase): |
318 | network, domain, DomainInfo(network, reverse) |
319 | ) |
320 | self.expectThat(directives, HasLength(1)) |
321 | - self.assertItemsEqual(expected_generate_directives, directives) |
322 | + self.assertCountEqual(expected_generate_directives, directives) |
323 | |
324 | def test_returns_single_entry_for_tiny_network(self): |
325 | network = IPNetwork("%s/28" % factory.make_ipv4_address()) |
326 | @@ -841,7 +841,7 @@ class TestDNSReverseZoneConfig_GetGenerateDirectives(MAASTestCase): |
327 | network, domain, DomainInfo(network, reverse) |
328 | ) |
329 | self.expectThat(directives, HasLength(1)) |
330 | - self.assertItemsEqual(expected_generate_directives, directives) |
331 | + self.assertCountEqual(expected_generate_directives, directives) |
332 | |
333 | def test_returns_single_entry_for_weird_small_range(self): |
334 | ip_range = IPRange("10.0.0.1", "10.0.0.255") |
335 | @@ -867,7 +867,7 @@ class TestDNSReverseZoneConfig_GetGenerateDirectives(MAASTestCase): |
336 | network, domain, DomainInfo(network, reverse) |
337 | ) |
338 | self.expectThat(directives, HasLength(256)) |
339 | - self.assertItemsEqual(expected_generate_directives, directives) |
340 | + self.assertCountEqual(expected_generate_directives, directives) |
341 | |
342 | def test_ignores_network_larger_than_slash_16(self): |
343 | network = IPNetwork("%s/15" % factory.make_ipv4_address()) |
344 | @@ -939,7 +939,7 @@ class TestDNSForwardZoneConfig_GetGenerateDirectives(MAASTestCase): |
345 | ("0-255", "192-168-1-$", "192.168.1.$"), |
346 | ("0-128", "192-168-2-$", "192.168.2.$"), |
347 | ] |
348 | - self.assertItemsEqual( |
349 | + self.assertCountEqual( |
350 | expected_directives, |
351 | DNSForwardZoneConfig.get_GENERATE_directives(ip_range), |
352 | ) |
353 | @@ -982,7 +982,7 @@ class TestDNSForwardZoneConfig_GetGenerateDirectives(MAASTestCase): |
354 | expected_directives = self.get_expected_generate_directives(network) |
355 | directives = DNSForwardZoneConfig.get_GENERATE_directives(network) |
356 | self.expectThat(directives, HasLength(1)) |
357 | - self.assertItemsEqual(expected_directives, directives) |
358 | + self.assertCountEqual(expected_directives, directives) |
359 | |
360 | def test_returns_single_entry_for_tiny_network(self): |
361 | network = IPNetwork("%s/31" % factory.make_ipv4_address()) |
362 | @@ -990,7 +990,7 @@ class TestDNSForwardZoneConfig_GetGenerateDirectives(MAASTestCase): |
363 | expected_directives = self.get_expected_generate_directives(network) |
364 | directives = DNSForwardZoneConfig.get_GENERATE_directives(network) |
365 | self.assertEqual(1, len(expected_directives)) |
366 | - self.assertItemsEqual(expected_directives, directives) |
367 | + self.assertCountEqual(expected_directives, directives) |
368 | |
369 | def test_returns_two_entries_for_slash_23_network(self): |
370 | network = IPNetwork("%s/23" % factory.make_ipv4_address()) |
371 | @@ -998,7 +998,7 @@ class TestDNSForwardZoneConfig_GetGenerateDirectives(MAASTestCase): |
372 | expected_directives = self.get_expected_generate_directives(network) |
373 | directives = DNSForwardZoneConfig.get_GENERATE_directives(network) |
374 | self.assertEqual(2, len(expected_directives)) |
375 | - self.assertItemsEqual(expected_directives, directives) |
376 | + self.assertCountEqual(expected_directives, directives) |
377 | |
378 | def test_dtrt_for_larger_networks(self): |
379 | # For every other network size that we're not explicitly |
380 | diff --git a/src/provisioningserver/drivers/hardware/tests/test_ucsm.py b/src/provisioningserver/drivers/hardware/tests/test_ucsm.py |
381 | index 571fe68..9493407 100644 |
382 | --- a/src/provisioningserver/drivers/hardware/tests/test_ucsm.py |
383 | +++ b/src/provisioningserver/drivers/hardware/tests/test_ucsm.py |
384 | @@ -1,9 +1,6 @@ |
385 | # Copyright 2014-2016 Canonical Ltd. This software is licensed under the |
386 | # GNU Affero General Public License version 3 (see the file LICENSE). |
387 | |
388 | -"""Tests for ``provisioningserver.drivers.hardware.ucsm``.""" |
389 | - |
390 | - |
391 | from io import StringIO |
392 | from itertools import permutations |
393 | import random |
394 | @@ -86,8 +83,6 @@ def make_server(power_state=None): |
395 | |
396 | |
397 | class TestUCSMXMLAPIError(MAASTestCase): |
398 | - """Tests for ``UCSM_XML_API_Error``.""" |
399 | - |
400 | def test_includes_code_and_msg(self): |
401 | def raise_error(): |
402 | raise UCSM_XML_API_Error("bad", 4224) |
403 | @@ -99,8 +94,6 @@ class TestUCSMXMLAPIError(MAASTestCase): |
404 | |
405 | |
406 | class TestMakeRequestData(MAASTestCase): |
407 | - """Tests for ``make_request_data``.""" |
408 | - |
409 | def test_no_children(self): |
410 | fields = {"hello": "there"} |
411 | request_data = make_request_data("foo", fields) |
412 | @@ -115,7 +108,7 @@ class TestMakeRequestData(MAASTestCase): |
413 | request_data = make_request_data("foo", fields, children) |
414 | root = XML(request_data) |
415 | self.assertEqual("foo", root.tag) |
416 | - self.assertItemsEqual(children_tags, (e.tag for e in root)) |
417 | + self.assertEqual(children_tags, [e.tag for e in root]) |
418 | |
419 | def test_no_fields(self): |
420 | request_data = make_request_data("foo") |
421 | @@ -124,8 +117,6 @@ class TestMakeRequestData(MAASTestCase): |
422 | |
423 | |
424 | class TestParseResonse(MAASTestCase): |
425 | - """Tests for ``parse_response``.""" |
426 | - |
427 | def test_no_error(self): |
428 | xml = "<foo/>" |
429 | response = parse_response(xml) |
430 | @@ -137,8 +128,6 @@ class TestParseResonse(MAASTestCase): |
431 | |
432 | |
433 | class TestLogin(MAASTestCase): |
434 | - """"Tests for ``UCSM_XML_API.login``.""" |
435 | - |
436 | def test_login_assigns_cookie(self): |
437 | cookie = "chocolate chip" |
438 | api, mock = make_api_patch_call(self) |
439 | @@ -156,8 +145,6 @@ class TestLogin(MAASTestCase): |
440 | |
441 | |
442 | class TestLogout(MAASTestCase): |
443 | - """"Tests for ``UCSM_XML_API.logout``.""" |
444 | - |
445 | def test_logout_clears_cookie(self): |
446 | api = make_api() |
447 | self.patch(api, "_call") |
448 | @@ -173,8 +160,6 @@ class TestLogout(MAASTestCase): |
449 | |
450 | |
451 | class TestConfigResolveClass(MAASTestCase): |
452 | - """"Tests for ``UCSM_XML_API.config_resolve_class``.""" |
453 | - |
454 | def test_no_filters(self): |
455 | class_id = make_class() |
456 | api, mock = make_api_patch_call(self) |
457 | @@ -200,8 +185,6 @@ class TestConfigResolveClass(MAASTestCase): |
458 | |
459 | |
460 | class TestConfigResolveChildren(MAASTestCase): |
461 | - """"Tests for ``UCSM_XML_API.config_resolve_children``.""" |
462 | - |
463 | def test_parameters(self): |
464 | dn = make_dn() |
465 | class_id = make_class() |
466 | @@ -229,8 +212,6 @@ class TestConfigResolveChildren(MAASTestCase): |
467 | |
468 | |
469 | class TestConfigConfMo(MAASTestCase): |
470 | - """"Tests for ``UCSM_XML_API.config_conf_mo``.""" |
471 | - |
472 | def test_parameters(self): |
473 | dn = make_dn() |
474 | config_items = [Element("hi")] |
475 | @@ -243,8 +224,6 @@ class TestConfigConfMo(MAASTestCase): |
476 | |
477 | |
478 | class TestCall(MAASTestCase): |
479 | - """"Tests for ``UCSM_XML_API._call``.""" |
480 | - |
481 | def test_call(self): |
482 | name = "method" |
483 | fields = {1: 2} |
484 | @@ -267,8 +246,6 @@ class TestCall(MAASTestCase): |
485 | |
486 | |
487 | class TestSendRequest(MAASTestCase): |
488 | - """"Tests for ``UCSM_XML_API._send_request``.""" |
489 | - |
490 | def test_send_request(self): |
491 | request_data = "foo" |
492 | api = make_api() |
493 | @@ -283,8 +260,6 @@ class TestSendRequest(MAASTestCase): |
494 | |
495 | |
496 | class TestConfigResolveDn(MAASTestCase): |
497 | - """Tests for ``UCSM_XML_API.config_resolve_dn``.""" |
498 | - |
499 | def test_parameters(self): |
500 | api, mock = make_api_patch_call(self) |
501 | test_dn = make_dn() |
502 | @@ -294,8 +269,6 @@ class TestConfigResolveDn(MAASTestCase): |
503 | |
504 | |
505 | class TestGetServers(MAASTestCase): |
506 | - """Tests for ``get_servers``.""" |
507 | - |
508 | def test_uses_uuid(self): |
509 | uuid = factory.make_UUID() |
510 | api = make_api() |
511 | @@ -322,8 +295,6 @@ class TestGetServers(MAASTestCase): |
512 | |
513 | |
514 | class TestProbeLanBootOptions(MAASTestCase): |
515 | - """Tests for ``probe_lan_boot_options``.""" |
516 | - |
517 | def test_returns_result(self): |
518 | api = make_api() |
519 | server = sentinel.server |
520 | @@ -350,8 +321,6 @@ class TestProbeLanBootOptions(MAASTestCase): |
521 | |
522 | |
523 | class TestGetChildren(MAASTestCase): |
524 | - """Tests for ``get_children``.""" |
525 | - |
526 | def test_returns_result(self): |
527 | search_class = make_class() |
528 | api = make_api() |
529 | @@ -374,8 +343,6 @@ class TestGetChildren(MAASTestCase): |
530 | |
531 | |
532 | class TestGetMacs(MAASTestCase): |
533 | - """Tests for ``get_macs``.""" |
534 | - |
535 | def test_gets_adaptors(self): |
536 | adaptor = "adaptor" |
537 | server = make_server() |
538 | @@ -402,8 +369,6 @@ class TestGetMacs(MAASTestCase): |
539 | |
540 | |
541 | class TestProbeServers(MAASTestCase): |
542 | - """Tests for ``probe_servers``.""" |
543 | - |
544 | def test_uses_api(self): |
545 | api = make_api() |
546 | mock = self.patch(ucsm, "get_servers") |
547 | @@ -441,8 +406,6 @@ class TestProbeServers(MAASTestCase): |
548 | |
549 | |
550 | class TestGetServerPowerControl(MAASTestCase): |
551 | - """Tests for ``get_server_power_control``.""" |
552 | - |
553 | def test_get_server_power_control(self): |
554 | api = make_api() |
555 | mock = self.patch(api, "config_resolve_children") |
556 | @@ -456,8 +419,6 @@ class TestGetServerPowerControl(MAASTestCase): |
557 | |
558 | |
559 | class TestSetServerPowerControl(MAASTestCase): |
560 | - """Tests for ``set_server_power_control``.""" |
561 | - |
562 | def test_set_server_power_control(self): |
563 | api = make_api() |
564 | power_dn = make_dn() |
565 | @@ -472,8 +433,6 @@ class TestSetServerPowerControl(MAASTestCase): |
566 | |
567 | |
568 | class TestLoggedIn(MAASTestCase): |
569 | - """Tests for ``logged_in``.""" |
570 | - |
571 | def test_logged_in(self): |
572 | mock = self.patch(ucsm, "UCSM_XML_API") |
573 | url = "url" |
574 | @@ -521,8 +480,6 @@ class TestInvalidGetPowerCommand(MAASTestCase): |
575 | |
576 | |
577 | class TestPowerControlUCSM(MAASTestCase): |
578 | - """Tests for ``power_control_ucsm``.""" |
579 | - |
580 | def test_power_control_ucsm(self): |
581 | uuid = factory.make_UUID() |
582 | api = Mock() |
583 | @@ -548,8 +505,6 @@ class TestPowerControlUCSM(MAASTestCase): |
584 | |
585 | |
586 | class TestUCSMPowerState(MAASTestCase): |
587 | - """Tests for `power_state_ucsm`.""" |
588 | - |
589 | def test_power_state_get_off(self): |
590 | url = factory.make_name("url") |
591 | username = factory.make_name("username") |
592 | @@ -594,7 +549,6 @@ class TestUCSMPowerState(MAASTestCase): |
593 | |
594 | |
595 | class TestProbeAndEnlistUCSM(MAASTestCase): |
596 | - """Tests for ``probe_and_enlist_ucsm``.""" |
597 | |
598 | run_tests_with = MAASTwistedRunTest.make_factory(timeout=5) |
599 | |
600 | @@ -640,8 +594,6 @@ class TestProbeAndEnlistUCSM(MAASTestCase): |
601 | |
602 | |
603 | class TestGetServiceProfile(MAASTestCase): |
604 | - """Tests for ``get_service_profile.``""" |
605 | - |
606 | def test_get_service_profile(self): |
607 | test_dn = make_dn() |
608 | server = Element("computeBlade", {"assignedToDn": test_dn}) |
609 | @@ -676,7 +628,6 @@ def make_boot_order_scenarios(size): |
610 | |
611 | |
612 | class TestGetFirstBooter(MAASTestCase): |
613 | - """Tests for ``get_first_booter.``""" |
614 | |
615 | scenarios, minimum = make_boot_order_scenarios(3) |
616 | |
617 | @@ -690,8 +641,6 @@ class TestGetFirstBooter(MAASTestCase): |
618 | |
619 | |
620 | class TestsForStripRoKeys(MAASTestCase): |
621 | - """Tests for ``strip_ro_keys.``""" |
622 | - |
623 | def test_strip_ro_keys(self): |
624 | attributes = {key: "DC" for key in RO_KEYS} |
625 | |
626 | @@ -709,8 +658,6 @@ class TestsForStripRoKeys(MAASTestCase): |
627 | |
628 | |
629 | class TestMakePolicyChange(MAASTestCase): |
630 | - """Tests for ``make_policy_change``.""" |
631 | - |
632 | def test_lan_already_top_priority(self): |
633 | boot_profile_response = make_fake_result( |
634 | "configResolveChildren", "lsbootLan" |
635 | @@ -738,8 +685,6 @@ class TestMakePolicyChange(MAASTestCase): |
636 | |
637 | |
638 | class TestSetLanBootDefault(MAASTestCase): |
639 | - """Tets for ``set_lan_boot_default.``""" |
640 | - |
641 | def test_no_change(self): |
642 | api = make_api() |
643 | server = make_server() |
644 | diff --git a/src/provisioningserver/drivers/hardware/tests/test_virsh.py b/src/provisioningserver/drivers/hardware/tests/test_virsh.py |
645 | index 6abcc41..c665a06 100644 |
646 | --- a/src/provisioningserver/drivers/hardware/tests/test_virsh.py |
647 | +++ b/src/provisioningserver/drivers/hardware/tests/test_virsh.py |
648 | @@ -191,14 +191,14 @@ class TestVirshSSH(MAASTestCase): |
649 | names = [factory.make_name("machine") for _ in range(3)] |
650 | conn = self.configure_virshssh("\n".join(names)) |
651 | expected = conn.list() |
652 | - self.assertItemsEqual(names, expected) |
653 | + self.assertEqual(names, expected) |
654 | |
655 | def test_list_dom_prefix(self): |
656 | prefix = "dom_prefix" |
657 | names = [prefix + factory.make_name("machine") for _ in range(3)] |
658 | conn = self.configure_virshssh("\n".join(names), dom_prefix=prefix) |
659 | expected = conn.list() |
660 | - self.assertItemsEqual(names, expected) |
661 | + self.assertEqual(names, expected) |
662 | |
663 | def test_get_state(self): |
664 | state = factory.make_name("state") |
665 | diff --git a/src/provisioningserver/drivers/osystem/tests/test_base.py b/src/provisioningserver/drivers/osystem/tests/test_base.py |
666 | index 1ec1654..851b714 100644 |
667 | --- a/src/provisioningserver/drivers/osystem/tests/test_base.py |
668 | +++ b/src/provisioningserver/drivers/osystem/tests/test_base.py |
669 | @@ -55,7 +55,7 @@ class TestOperatingSystem(MAASTestCase): |
670 | def test_format_release_choices(self): |
671 | osystem = self.make_usable_osystem() |
672 | releases = osystem.get_supported_releases() |
673 | - self.assertItemsEqual( |
674 | + self.assertCountEqual( |
675 | [(release, release) for release in releases], |
676 | osystem.format_release_choices(releases), |
677 | ) |
678 | @@ -72,7 +72,7 @@ class TestOperatingSystem(MAASTestCase): |
679 | osystem = self.make_usable_osystem() |
680 | images = self.configure_list_boot_images_for(osystem) |
681 | releases = {image["release"] for image in images} |
682 | - self.assertItemsEqual(releases, osystem.gen_supported_releases()) |
683 | + self.assertCountEqual(releases, osystem.gen_supported_releases()) |
684 | |
685 | def test_get_xinstall_parameters(self): |
686 | # The base OperatingSystems class should only look for root-tgz, |
687 | @@ -90,7 +90,7 @@ class TestOperatingSystem(MAASTestCase): |
688 | for fname in ["squashfs", "root-tgz", "root-dd"]: |
689 | factory.make_file(dir_path, fname) |
690 | self.useFixture(ClusterConfigurationFixture(tftp_root=tmpdir)) |
691 | - self.assertItemsEqual( |
692 | + self.assertEqual( |
693 | ("root-tgz", "tgz"), |
694 | osystem.get_xinstall_parameters(arch, subarch, release, label), |
695 | ) |
696 | @@ -265,7 +265,7 @@ class TestFindImage(MAASTestCase): |
697 | if self.fname: |
698 | factory.make_file(dir_path, self.fname) |
699 | self.useFixture(ClusterConfigurationFixture(tftp_root=tmpdir)) |
700 | - self.assertItemsEqual( |
701 | + self.assertEqual( |
702 | self.expected, |
703 | osystem._find_image( |
704 | arch, |
705 | @@ -286,7 +286,7 @@ class TestOperatingSystemRegistry(MAASTestCase): |
706 | self.useFixture(RegistryFixture()) |
707 | |
708 | def test_operating_system_registry(self): |
709 | - self.assertItemsEqual([], OperatingSystemRegistry) |
710 | + self.assertEqual([], list(OperatingSystemRegistry)) |
711 | OperatingSystemRegistry.register_item("resource", sentinel.resource) |
712 | self.assertIn( |
713 | sentinel.resource, (item for name, item in OperatingSystemRegistry) |
714 | diff --git a/src/provisioningserver/drivers/osystem/tests/test_bootloader.py b/src/provisioningserver/drivers/osystem/tests/test_bootloader.py |
715 | index b834670..c240f72 100644 |
716 | --- a/src/provisioningserver/drivers/osystem/tests/test_bootloader.py |
717 | +++ b/src/provisioningserver/drivers/osystem/tests/test_bootloader.py |
718 | @@ -22,7 +22,7 @@ class TestCustomOS(MAASTestCase): |
719 | |
720 | def test_get_boot_image_purposes(self): |
721 | osystem = BootLoaderOS() |
722 | - self.assertItemsEqual( |
723 | + self.assertEqual( |
724 | [BOOT_IMAGE_PURPOSE.BOOTLOADER], |
725 | osystem.get_boot_image_purposes( |
726 | factory.make_name("arch"), |
727 | diff --git a/src/provisioningserver/drivers/osystem/tests/test_ubuntucore.py b/src/provisioningserver/drivers/osystem/tests/test_ubuntucore.py |
728 | index 956b245..50d05ea 100644 |
729 | --- a/src/provisioningserver/drivers/osystem/tests/test_ubuntucore.py |
730 | +++ b/src/provisioningserver/drivers/osystem/tests/test_ubuntucore.py |
731 | @@ -61,7 +61,7 @@ class TestUbuntuCoreOS(MAASTestCase): |
732 | |
733 | def test_get_xinstall_parameters_default(self): |
734 | osystem = UbuntuCoreOS() |
735 | - self.assertItemsEqual( |
736 | + self.assertEqual( |
737 | ("root-dd.xz", "dd-xz"), |
738 | osystem.get_xinstall_parameters( |
739 | factory.make_name("arch"), |
740 | diff --git a/src/provisioningserver/drivers/osystem/tests/test_windows.py b/src/provisioningserver/drivers/osystem/tests/test_windows.py |
741 | index 92f7e9a..fb439b7 100644 |
742 | --- a/src/provisioningserver/drivers/osystem/tests/test_windows.py |
743 | +++ b/src/provisioningserver/drivers/osystem/tests/test_windows.py |
744 | @@ -25,7 +25,7 @@ class TestWindowsOS(MAASTestCase): |
745 | subarch = factory.make_name("subarch") |
746 | release = factory.make_name("release") |
747 | label = factory.make_name("label") |
748 | - self.assertItemsEqual( |
749 | + self.assertEqual( |
750 | [BOOT_IMAGE_PURPOSE.XINSTALL], |
751 | osystem.get_boot_image_purposes(arch, subarch, release, label), |
752 | ) |
753 | @@ -112,16 +112,16 @@ class TestWindowsOS(MAASTestCase): |
754 | node = self.make_node() |
755 | token = self.make_token() |
756 | url = factory.make_name("url") |
757 | - required_keys = [ |
758 | + required_keys = { |
759 | "maas_metadata_url", |
760 | "maas_oauth_consumer_secret", |
761 | "maas_oauth_consumer_key", |
762 | "maas_oauth_token_key", |
763 | "maas_oauth_token_secret", |
764 | "hostname", |
765 | - ] |
766 | + } |
767 | preseed = osystem.compose_preseed("default", node, token, url) |
768 | - self.assertItemsEqual(required_keys, preseed.keys()) |
769 | + self.assertEqual(required_keys, preseed.keys()) |
770 | |
771 | def test_compose_preseed_uses_only_hostname(self): |
772 | osystem = WindowsOS() |
773 | diff --git a/src/provisioningserver/drivers/pod/tests/test_lxd.py b/src/provisioningserver/drivers/pod/tests/test_lxd.py |
774 | index 62d3405..7850b00 100644 |
775 | --- a/src/provisioningserver/drivers/pod/tests/test_lxd.py |
776 | +++ b/src/provisioningserver/drivers/pod/tests/test_lxd.py |
777 | @@ -466,7 +466,7 @@ class TestLXDPodDriver(MAASTestCase): |
778 | self.assertEqual(["amd64/generic"], discovered_pod.architectures) |
779 | self.assertEqual("lxd-server", discovered_pod.name) |
780 | self.assertEqual(discovered_pod.version, "4.1") |
781 | - self.assertItemsEqual([mac_address], discovered_pod.mac_addresses) |
782 | + self.assertEqual([mac_address], discovered_pod.mac_addresses) |
783 | self.assertEqual(-1, discovered_pod.cores) |
784 | self.assertEqual(-1, discovered_pod.cpu_speed) |
785 | self.assertEqual(-1, discovered_pod.memory) |
786 | @@ -474,7 +474,7 @@ class TestLXDPodDriver(MAASTestCase): |
787 | self.assertEqual(-1, discovered_pod.hints.cores) |
788 | self.assertEqual(-1, discovered_pod.hints.cpu_speed) |
789 | self.assertEqual(-1, discovered_pod.hints.local_storage) |
790 | - self.assertItemsEqual( |
791 | + self.assertEqual( |
792 | [ |
793 | Capabilities.COMPOSABLE, |
794 | Capabilities.DYNAMIC_LOCAL_STORAGE, |
795 | diff --git a/src/provisioningserver/drivers/pod/tests/test_registry.py b/src/provisioningserver/drivers/pod/tests/test_registry.py |
796 | index c4c9b15..b3eca04 100644 |
797 | --- a/src/provisioningserver/drivers/pod/tests/test_registry.py |
798 | +++ b/src/provisioningserver/drivers/pod/tests/test_registry.py |
799 | @@ -19,7 +19,7 @@ class TestPodDriverRegistry(MAASTestCase): |
800 | self.useFixture(RegistryFixture()) |
801 | |
802 | def test_registry(self): |
803 | - self.assertItemsEqual([], PodDriverRegistry) |
804 | + self.assertEqual([], list(PodDriverRegistry)) |
805 | PodDriverRegistry.register_item("driver", sentinel.driver) |
806 | self.assertIn( |
807 | sentinel.driver, (item for name, item in PodDriverRegistry) |
808 | @@ -30,7 +30,7 @@ class TestPodDriverRegistry(MAASTestCase): |
809 | fake_driver_two = make_pod_driver_base() |
810 | PodDriverRegistry.register_item(fake_driver_one.name, fake_driver_one) |
811 | PodDriverRegistry.register_item(fake_driver_two.name, fake_driver_two) |
812 | - self.assertItemsEqual( |
813 | + self.assertEqual( |
814 | [ |
815 | { |
816 | "driver_type": "pod", |
817 | diff --git a/src/provisioningserver/drivers/pod/tests/test_virsh.py b/src/provisioningserver/drivers/pod/tests/test_virsh.py |
818 | index 79ebded..8a63418 100644 |
819 | --- a/src/provisioningserver/drivers/pod/tests/test_virsh.py |
820 | +++ b/src/provisioningserver/drivers/pod/tests/test_virsh.py |
821 | @@ -665,7 +665,7 @@ class TestVirshSSH(MAASTestCase): |
822 | expected = (("br0", "e1000"), ("br1", "e1000")) |
823 | conn = self.configure_virshssh("") |
824 | values = conn._get_column_values(SAMPLE_IFLIST, keys) |
825 | - self.assertItemsEqual(values, expected) |
826 | + self.assertEqual(values, expected) |
827 | |
828 | def test_get_key_value(self): |
829 | key = "CPU model" |
830 | @@ -698,31 +698,31 @@ class TestVirshSSH(MAASTestCase): |
831 | names = [factory.make_name("machine") for _ in range(3)] |
832 | conn = self.configure_virshssh("\n".join(names)) |
833 | expected = conn.list_machines() |
834 | - self.assertItemsEqual(names, expected) |
835 | + self.assertEqual(names, expected) |
836 | |
837 | def test_list_machines_with_dom_prefix(self): |
838 | prefix = "dom_prefix" |
839 | names = [prefix + factory.make_name("machine") for _ in range(3)] |
840 | conn = self.configure_virshssh("\n".join(names), dom_prefix=prefix) |
841 | expected = conn.list_machines() |
842 | - self.assertItemsEqual(names, expected) |
843 | + self.assertEqual(names, expected) |
844 | |
845 | def test_list_pools(self): |
846 | names = ["default", "ubuntu"] |
847 | conn = self.configure_virshssh(SAMPLE_POOLLIST) |
848 | expected = conn.list_pools() |
849 | - self.assertItemsEqual(names, expected) |
850 | + self.assertEqual(names, expected) |
851 | |
852 | def test_list_machine_block_devices(self): |
853 | - block_devices = ( |
854 | + block_devices = [ |
855 | ("vda", "/var/lib/libvirt/images/example1.qcow2"), |
856 | ("vdb", "/var/lib/libvirt/images/example2.qcow2"), |
857 | - ) |
858 | + ] |
859 | conn = self.configure_virshssh(SAMPLE_DOMBLKLIST) |
860 | expected = conn.list_machine_block_devices( |
861 | factory.make_name("machine") |
862 | ) |
863 | - self.assertItemsEqual(block_devices, expected) |
864 | + self.assertEqual(block_devices, expected) |
865 | |
866 | def test_get_machine_state(self): |
867 | state = factory.make_name("state") |
868 | @@ -1086,13 +1086,13 @@ class TestVirshSSH(MAASTestCase): |
869 | self.assertEqual(architecture, discovered_machine.architecture) |
870 | self.assertEqual(cores, discovered_machine.cores) |
871 | self.assertEqual(memory, discovered_machine.memory) |
872 | - self.assertItemsEqual( |
873 | + self.assertCountEqual( |
874 | local_storage, [bd.size for bd in discovered_machine.block_devices] |
875 | ) |
876 | - self.assertItemsEqual( |
877 | + self.assertEqual( |
878 | device_tags, [bd.tags for bd in discovered_machine.block_devices] |
879 | ) |
880 | - self.assertItemsEqual( |
881 | + self.assertCountEqual( |
882 | mac_addresses, |
883 | [m.mac_address for m in discovered_machine.interfaces], |
884 | ) |
885 | @@ -1194,13 +1194,13 @@ class TestVirshSSH(MAASTestCase): |
886 | self.assertEqual(architecture, discovered_machine.architecture) |
887 | self.assertEqual(cores, discovered_machine.cores) |
888 | self.assertEqual(memory, discovered_machine.memory) |
889 | - self.assertItemsEqual( |
890 | + self.assertCountEqual( |
891 | local_storage, [bd.size for bd in discovered_machine.block_devices] |
892 | ) |
893 | - self.assertItemsEqual( |
894 | + self.assertCountEqual( |
895 | device_tags, [bd.tags for bd in discovered_machine.block_devices] |
896 | ) |
897 | - self.assertItemsEqual( |
898 | + self.assertCountEqual( |
899 | mac_addresses, |
900 | [m.mac_address for m in discovered_machine.interfaces], |
901 | ) |
902 | @@ -2570,14 +2570,14 @@ class TestVirshPodDriver(MAASTestCase): |
903 | mock.return_value = False |
904 | driver = virsh.VirshPodDriver() |
905 | missing = driver.detect_missing_packages() |
906 | - self.assertItemsEqual(["libvirt-clients"], missing) |
907 | + self.assertEqual(["libvirt-clients"], missing) |
908 | |
909 | def test_no_missing_packages(self): |
910 | mock = self.patch(has_command_available) |
911 | mock.return_value = True |
912 | driver = virsh.VirshPodDriver() |
913 | missing = driver.detect_missing_packages() |
914 | - self.assertItemsEqual([], missing) |
915 | + self.assertEqual([], missing) |
916 | |
917 | def make_context(self): |
918 | return { |
919 | diff --git a/src/provisioningserver/drivers/power/tests/test_amt.py b/src/provisioningserver/drivers/power/tests/test_amt.py |
920 | index c3776da..f97b3c5 100644 |
921 | --- a/src/provisioningserver/drivers/power/tests/test_amt.py |
922 | +++ b/src/provisioningserver/drivers/power/tests/test_amt.py |
923 | @@ -103,14 +103,14 @@ class TestAMTPowerDriver(MAASTestCase): |
924 | mock.return_value = False |
925 | driver = amt_module.AMTPowerDriver() |
926 | missing = driver.detect_missing_packages() |
927 | - self.assertItemsEqual(["wsmancli"], missing) |
928 | + self.assertEqual(["wsmancli"], missing) |
929 | |
930 | def test_no_missing_packages(self): |
931 | mock = self.patch(has_command_available) |
932 | mock.return_value = True |
933 | driver = amt_module.AMTPowerDriver() |
934 | missing = driver.detect_missing_packages() |
935 | - self.assertItemsEqual([], missing) |
936 | + self.assertEqual([], missing) |
937 | |
938 | def test_render_wsman_state_xml_renders_xml(self): |
939 | amt_power_driver = AMTPowerDriver() |
940 | diff --git a/src/provisioningserver/drivers/power/tests/test_apc.py b/src/provisioningserver/drivers/power/tests/test_apc.py |
941 | index 350931e..028e394 100644 |
942 | --- a/src/provisioningserver/drivers/power/tests/test_apc.py |
943 | +++ b/src/provisioningserver/drivers/power/tests/test_apc.py |
944 | @@ -30,14 +30,14 @@ class TestAPCPowerDriver(MAASTestCase): |
945 | mock.return_value = False |
946 | driver = apc_module.APCPowerDriver() |
947 | missing = driver.detect_missing_packages() |
948 | - self.assertItemsEqual(["snmp"], missing) |
949 | + self.assertEqual(["snmp"], missing) |
950 | |
951 | def test_no_missing_packages(self): |
952 | mock = self.patch(has_command_available) |
953 | mock.return_value = True |
954 | driver = apc_module.APCPowerDriver() |
955 | missing = driver.detect_missing_packages() |
956 | - self.assertItemsEqual([], missing) |
957 | + self.assertEqual([], missing) |
958 | |
959 | def patch_run_command(self, stdout="", stderr="", returncode=0): |
960 | mock_run_command = self.patch(apc_module.shell, "run_command") |
961 | diff --git a/src/provisioningserver/drivers/power/tests/test_dli.py b/src/provisioningserver/drivers/power/tests/test_dli.py |
962 | index ff43388..7fbeb69 100644 |
963 | --- a/src/provisioningserver/drivers/power/tests/test_dli.py |
964 | +++ b/src/provisioningserver/drivers/power/tests/test_dli.py |
965 | @@ -45,14 +45,14 @@ class TestDLIPowerDriver(MAASTestCase): |
966 | mock.return_value = False |
967 | driver = dli_module.DLIPowerDriver() |
968 | missing = driver.detect_missing_packages() |
969 | - self.assertItemsEqual(["wget"], missing) |
970 | + self.assertEqual(["wget"], missing) |
971 | |
972 | def test_no_missing_packages(self): |
973 | mock = self.patch(has_command_available) |
974 | mock.return_value = True |
975 | driver = dli_module.DLIPowerDriver() |
976 | missing = driver.detect_missing_packages() |
977 | - self.assertItemsEqual([], missing) |
978 | + self.assertEqual([], missing) |
979 | |
980 | def test_set_outlet_state_calls_wget(self): |
981 | driver = dli_module.DLIPowerDriver() |
982 | diff --git a/src/provisioningserver/drivers/power/tests/test_eaton.py b/src/provisioningserver/drivers/power/tests/test_eaton.py |
983 | index 900bdc9..7e8ddb2 100644 |
984 | --- a/src/provisioningserver/drivers/power/tests/test_eaton.py |
985 | +++ b/src/provisioningserver/drivers/power/tests/test_eaton.py |
986 | @@ -27,14 +27,14 @@ class TestEatonPowerDriver(MAASTestCase): |
987 | mock.return_value = False |
988 | driver = eaton_module.EatonPowerDriver() |
989 | missing = driver.detect_missing_packages() |
990 | - self.assertItemsEqual(["snmp"], missing) |
991 | + self.assertEqual(["snmp"], missing) |
992 | |
993 | def test_no_missing_packages(self): |
994 | mock = self.patch(has_command_available) |
995 | mock.return_value = True |
996 | driver = eaton_module.EatonPowerDriver() |
997 | missing = driver.detect_missing_packages() |
998 | - self.assertItemsEqual([], missing) |
999 | + self.assertEqual([], missing) |
1000 | |
1001 | def patch_run_command(self, stdout="", stderr="", returncode=0): |
1002 | mock_run_command = self.patch(eaton_module.shell, "run_command") |
1003 | diff --git a/src/provisioningserver/drivers/power/tests/test_hmc.py b/src/provisioningserver/drivers/power/tests/test_hmc.py |
1004 | index 32d7149..117f3b2 100644 |
1005 | --- a/src/provisioningserver/drivers/power/tests/test_hmc.py |
1006 | +++ b/src/provisioningserver/drivers/power/tests/test_hmc.py |
1007 | @@ -42,7 +42,7 @@ class TestHMCPowerDriver(MAASTestCase): |
1008 | # there's nothing to check for, just confirm it returns [] |
1009 | driver = hmc_module.HMCPowerDriver() |
1010 | missing = driver.detect_missing_packages() |
1011 | - self.assertItemsEqual([], missing) |
1012 | + self.assertEqual([], missing) |
1013 | |
1014 | def test_run_hmc_command_returns_command_output(self): |
1015 | driver = HMCPowerDriver() |
1016 | diff --git a/src/provisioningserver/drivers/power/tests/test_ipmi.py b/src/provisioningserver/drivers/power/tests/test_ipmi.py |
1017 | index 7f91d0e..25c9634 100644 |
1018 | --- a/src/provisioningserver/drivers/power/tests/test_ipmi.py |
1019 | +++ b/src/provisioningserver/drivers/power/tests/test_ipmi.py |
1020 | @@ -134,14 +134,14 @@ class TestIPMIPowerDriver(MAASTestCase): |
1021 | mock.return_value = False |
1022 | driver = ipmi_module.IPMIPowerDriver() |
1023 | missing = driver.detect_missing_packages() |
1024 | - self.assertItemsEqual(["freeipmi-tools"], missing) |
1025 | + self.assertEqual(["freeipmi-tools"], missing) |
1026 | |
1027 | def test_no_missing_packages(self): |
1028 | mock = self.patch(has_command_available) |
1029 | mock.return_value = True |
1030 | driver = ipmi_module.IPMIPowerDriver() |
1031 | missing = driver.detect_missing_packages() |
1032 | - self.assertItemsEqual([], missing) |
1033 | + self.assertEqual([], missing) |
1034 | |
1035 | def test_finds_power_address_from_mac_address(self): |
1036 | context = make_context() |
1037 | diff --git a/src/provisioningserver/drivers/power/tests/test_manual.py b/src/provisioningserver/drivers/power/tests/test_manual.py |
1038 | index 529c0d0..1fcf69c 100644 |
1039 | --- a/src/provisioningserver/drivers/power/tests/test_manual.py |
1040 | +++ b/src/provisioningserver/drivers/power/tests/test_manual.py |
1041 | @@ -13,7 +13,7 @@ class TestManualPowerDriver(MAASTestCase): |
1042 | def test_no_missing_packages(self): |
1043 | driver = manual_module.ManualPowerDriver() |
1044 | missing = driver.detect_missing_packages() |
1045 | - self.assertItemsEqual([], missing) |
1046 | + self.assertEqual([], missing) |
1047 | |
1048 | def test_power_on(self): |
1049 | driver = manual_module.ManualPowerDriver() |
1050 | diff --git a/src/provisioningserver/drivers/power/tests/test_moonshot.py b/src/provisioningserver/drivers/power/tests/test_moonshot.py |
1051 | index 05dc5d6..3f28eab 100644 |
1052 | --- a/src/provisioningserver/drivers/power/tests/test_moonshot.py |
1053 | +++ b/src/provisioningserver/drivers/power/tests/test_moonshot.py |
1054 | @@ -81,14 +81,14 @@ class TestMoonshotIPMIPowerDriver(MAASTestCase): |
1055 | mock.return_value = False |
1056 | driver = moonshot_module.MoonshotIPMIPowerDriver() |
1057 | missing = driver.detect_missing_packages() |
1058 | - self.assertItemsEqual(["ipmitool"], missing) |
1059 | + self.assertEqual(["ipmitool"], missing) |
1060 | |
1061 | def test_no_missing_packages(self): |
1062 | mock = self.patch(has_command_available) |
1063 | mock.return_value = True |
1064 | driver = moonshot_module.MoonshotIPMIPowerDriver() |
1065 | missing = driver.detect_missing_packages() |
1066 | - self.assertItemsEqual([], missing) |
1067 | + self.assertEqual([], missing) |
1068 | |
1069 | def test_issue_ipmitool_command_sets_pxe_boot(self): |
1070 | context = make_context() |
1071 | diff --git a/src/provisioningserver/drivers/power/tests/test_mscm.py b/src/provisioningserver/drivers/power/tests/test_mscm.py |
1072 | index a6e28c7..827f380 100644 |
1073 | --- a/src/provisioningserver/drivers/power/tests/test_mscm.py |
1074 | +++ b/src/provisioningserver/drivers/power/tests/test_mscm.py |
1075 | @@ -87,7 +87,7 @@ class TestMSCMPowerDriver(MAASTestCase): |
1076 | # there's nothing to check for, just confirm it returns [] |
1077 | driver = mscm_module.MSCMPowerDriver() |
1078 | missing = driver.detect_missing_packages() |
1079 | - self.assertItemsEqual([], missing) |
1080 | + self.assertEqual([], missing) |
1081 | |
1082 | def test_run_mscm_command_returns_command_output(self): |
1083 | driver = MSCMPowerDriver() |
1084 | diff --git a/src/provisioningserver/drivers/power/tests/test_msftocs.py b/src/provisioningserver/drivers/power/tests/test_msftocs.py |
1085 | index 6500674..d0ee318 100644 |
1086 | --- a/src/provisioningserver/drivers/power/tests/test_msftocs.py |
1087 | +++ b/src/provisioningserver/drivers/power/tests/test_msftocs.py |
1088 | @@ -53,7 +53,7 @@ class TestMicrosoftOCSPowerDriver(MAASTestCase): |
1089 | # there's nothing to check for, just confirm it returns [] |
1090 | driver = MicrosoftOCSPowerDriver() |
1091 | missing = driver.detect_missing_packages() |
1092 | - self.assertItemsEqual([], missing) |
1093 | + self.assertEqual([], missing) |
1094 | |
1095 | def test_extract_from_response_finds_element_content(self): |
1096 | driver = MicrosoftOCSPowerDriver() |
1097 | diff --git a/src/provisioningserver/drivers/power/tests/test_nova.py b/src/provisioningserver/drivers/power/tests/test_nova.py |
1098 | index 0a0ee97..4a5c19a 100644 |
1099 | --- a/src/provisioningserver/drivers/power/tests/test_nova.py |
1100 | +++ b/src/provisioningserver/drivers/power/tests/test_nova.py |
1101 | @@ -19,14 +19,14 @@ class TestNovaPowerDriver(MAASTestCase): |
1102 | mock = self.patch(driver, "try_novaapi_import") |
1103 | mock.return_value = False |
1104 | missing = driver.detect_missing_packages() |
1105 | - self.assertItemsEqual(["python3-novaclient"], missing) |
1106 | + self.assertEqual(["python3-novaclient"], missing) |
1107 | |
1108 | def test_no_missing_packages(self): |
1109 | driver = nova_module.NovaPowerDriver() |
1110 | mock = self.patch(driver, "try_novaapi_import") |
1111 | mock.return_value = True |
1112 | missing = driver.detect_missing_packages() |
1113 | - self.assertItemsEqual([], missing) |
1114 | + self.assertEqual([], missing) |
1115 | |
1116 | def make_parameters(self): |
1117 | system_id = factory.make_name("system_id") |
1118 | diff --git a/src/provisioningserver/drivers/power/tests/test_openbmc.py b/src/provisioningserver/drivers/power/tests/test_openbmc.py |
1119 | index 8f68164..f480dd8 100644 |
1120 | --- a/src/provisioningserver/drivers/power/tests/test_openbmc.py |
1121 | +++ b/src/provisioningserver/drivers/power/tests/test_openbmc.py |
1122 | @@ -56,7 +56,7 @@ class TestOpenBMCPowerDriver(MAASTestCase): |
1123 | def test_missing_packages(self): |
1124 | driver = OpenBMCPowerDriver() |
1125 | missing = driver.detect_missing_packages() |
1126 | - self.assertItemsEqual([], missing) |
1127 | + self.assertEqual([], missing) |
1128 | |
1129 | def test_get_url_with_ip(self): |
1130 | driver = OpenBMCPowerDriver() |
1131 | diff --git a/src/provisioningserver/drivers/power/tests/test_recs.py b/src/provisioningserver/drivers/power/tests/test_recs.py |
1132 | index a2d1625..300dd28 100644 |
1133 | --- a/src/provisioningserver/drivers/power/tests/test_recs.py |
1134 | +++ b/src/provisioningserver/drivers/power/tests/test_recs.py |
1135 | @@ -45,7 +45,7 @@ class TestRECSPowerDriver(MAASTestCase): |
1136 | mock.return_value = True |
1137 | driver = RECSPowerDriver() |
1138 | missing = driver.detect_missing_packages() |
1139 | - self.assertItemsEqual([], missing) |
1140 | + self.assertEqual([], missing) |
1141 | |
1142 | def make_context(self): |
1143 | ip = factory.make_name("power_address") |
1144 | @@ -65,7 +65,7 @@ class TestRECSPowerDriver(MAASTestCase): |
1145 | def test_extract_recs_parameters_extracts_parameters(self): |
1146 | ip, port, username, password, node_id, context = self.make_context() |
1147 | |
1148 | - self.assertItemsEqual( |
1149 | + self.assertEqual( |
1150 | (ip, port, username, password, node_id), |
1151 | extract_recs_parameters(context), |
1152 | ) |
1153 | diff --git a/src/provisioningserver/drivers/power/tests/test_redfish.py b/src/provisioningserver/drivers/power/tests/test_redfish.py |
1154 | index 22118eb..ee98c73 100644 |
1155 | --- a/src/provisioningserver/drivers/power/tests/test_redfish.py |
1156 | +++ b/src/provisioningserver/drivers/power/tests/test_redfish.py |
1157 | @@ -151,7 +151,7 @@ class TestRedfishPowerDriver(MAASTestCase): |
1158 | # there's nothing to check for, just confirm it returns [] |
1159 | driver = RedfishPowerDriver() |
1160 | missing = driver.detect_missing_packages() |
1161 | - self.assertItemsEqual([], missing) |
1162 | + self.assertEqual([], missing) |
1163 | |
1164 | def test_get_url_with_ip(self): |
1165 | driver = RedfishPowerDriver() |
1166 | diff --git a/src/provisioningserver/drivers/power/tests/test_registry.py b/src/provisioningserver/drivers/power/tests/test_registry.py |
1167 | index c268d3d..0ff87e3 100644 |
1168 | --- a/src/provisioningserver/drivers/power/tests/test_registry.py |
1169 | +++ b/src/provisioningserver/drivers/power/tests/test_registry.py |
1170 | @@ -22,7 +22,7 @@ class TestPowerDriverRegistry(MAASTestCase): |
1171 | self.useFixture(RegistryFixture()) |
1172 | |
1173 | def test_registry(self): |
1174 | - self.assertItemsEqual([], PowerDriverRegistry) |
1175 | + self.assertEqual([], list(PowerDriverRegistry)) |
1176 | PowerDriverRegistry.register_item("driver", sentinel.driver) |
1177 | self.assertIn( |
1178 | sentinel.driver, (item for name, item in PowerDriverRegistry) |
1179 | @@ -41,7 +41,7 @@ class TestPowerDriverRegistry(MAASTestCase): |
1180 | PowerDriverRegistry.register_item( |
1181 | fake_pod_driver.name, fake_pod_driver |
1182 | ) |
1183 | - self.assertItemsEqual( |
1184 | + self.assertEqual( |
1185 | [ |
1186 | { |
1187 | "driver_type": "power", |
1188 | diff --git a/src/provisioningserver/drivers/power/tests/test_seamicro.py b/src/provisioningserver/drivers/power/tests/test_seamicro.py |
1189 | index e707cb7..77c7bc3 100644 |
1190 | --- a/src/provisioningserver/drivers/power/tests/test_seamicro.py |
1191 | +++ b/src/provisioningserver/drivers/power/tests/test_seamicro.py |
1192 | @@ -29,14 +29,14 @@ class TestSeaMicroPowerDriver(MAASTestCase): |
1193 | mock.return_value = False |
1194 | driver = seamicro_module.SeaMicroPowerDriver() |
1195 | missing = driver.detect_missing_packages() |
1196 | - self.assertItemsEqual(["ipmitool"], missing) |
1197 | + self.assertEqual(["ipmitool"], missing) |
1198 | |
1199 | def test_no_missing_packages(self): |
1200 | mock = self.patch(has_command_available) |
1201 | mock.return_value = True |
1202 | driver = seamicro_module.SeaMicroPowerDriver() |
1203 | missing = driver.detect_missing_packages() |
1204 | - self.assertItemsEqual([], missing) |
1205 | + self.assertEqual([], missing) |
1206 | |
1207 | def make_context(self): |
1208 | ip = factory.make_name("power_address") |
1209 | @@ -56,7 +56,7 @@ class TestSeaMicroPowerDriver(MAASTestCase): |
1210 | power_control = choice(["ipmi", "restapi", "restapi2"]) |
1211 | context["power_control"] = power_control |
1212 | |
1213 | - self.assertItemsEqual( |
1214 | + self.assertEqual( |
1215 | (ip, username, password, server_id, power_control), |
1216 | extract_seamicro_parameters(context), |
1217 | ) |
1218 | diff --git a/src/provisioningserver/drivers/power/tests/test_ucsm.py b/src/provisioningserver/drivers/power/tests/test_ucsm.py |
1219 | index 0f1d783..e81ad16 100644 |
1220 | --- a/src/provisioningserver/drivers/power/tests/test_ucsm.py |
1221 | +++ b/src/provisioningserver/drivers/power/tests/test_ucsm.py |
1222 | @@ -21,7 +21,7 @@ class TestUCSMPowerDriver(MAASTestCase): |
1223 | # there's nothing to check for, just confirm it returns [] |
1224 | driver = ucsm_module.UCSMPowerDriver() |
1225 | missing = driver.detect_missing_packages() |
1226 | - self.assertItemsEqual([], missing) |
1227 | + self.assertEqual([], missing) |
1228 | |
1229 | def make_parameters(self): |
1230 | system_id = factory.make_name("system_id") |
1231 | @@ -48,7 +48,7 @@ class TestUCSMPowerDriver(MAASTestCase): |
1232 | context, |
1233 | ) = self.make_parameters() |
1234 | |
1235 | - self.assertItemsEqual( |
1236 | + self.assertEqual( |
1237 | (url, username, password, uuid), extract_ucsm_parameters(context) |
1238 | ) |
1239 | |
1240 | diff --git a/src/provisioningserver/drivers/power/tests/test_vmware.py b/src/provisioningserver/drivers/power/tests/test_vmware.py |
1241 | index ef05990..a8a0ccf 100644 |
1242 | --- a/src/provisioningserver/drivers/power/tests/test_vmware.py |
1243 | +++ b/src/provisioningserver/drivers/power/tests/test_vmware.py |
1244 | @@ -23,14 +23,14 @@ class TestVMwarePowerDriver(MAASTestCase): |
1245 | mock.return_value = False |
1246 | driver = vmware_module.VMwarePowerDriver() |
1247 | missing = driver.detect_missing_packages() |
1248 | - self.assertItemsEqual(["python3-pyvmomi"], missing) |
1249 | + self.assertEqual(["python3-pyvmomi"], missing) |
1250 | |
1251 | def test_no_missing_packages(self): |
1252 | mock = self.patch(try_pyvmomi_import) |
1253 | mock.return_value = True |
1254 | driver = vmware_module.VMwarePowerDriver() |
1255 | missing = driver.detect_missing_packages() |
1256 | - self.assertItemsEqual([], missing) |
1257 | + self.assertEqual([], missing) |
1258 | |
1259 | def make_parameters(self, has_optional=True): |
1260 | system_id = factory.make_name("system_id") |
1261 | @@ -78,7 +78,7 @@ class TestVMwarePowerDriver(MAASTestCase): |
1262 | context, |
1263 | ) = self.make_parameters() |
1264 | |
1265 | - self.assertItemsEqual( |
1266 | + self.assertEqual( |
1267 | (host, username, password, vm_name, uuid, None, None), |
1268 | extract_vmware_parameters(context), |
1269 | ) |
1270 | @@ -96,7 +96,7 @@ class TestVMwarePowerDriver(MAASTestCase): |
1271 | context, |
1272 | ) = self.make_parameters(has_optional=False) |
1273 | |
1274 | - self.assertItemsEqual( |
1275 | + self.assertEqual( |
1276 | (host, username, password, vm_name, uuid, port, protocol), |
1277 | extract_vmware_parameters(context), |
1278 | ) |
1279 | diff --git a/src/provisioningserver/drivers/power/tests/test_webhook.py b/src/provisioningserver/drivers/power/tests/test_webhook.py |
1280 | index 0ba2b43..ce974e1 100644 |
1281 | --- a/src/provisioningserver/drivers/power/tests/test_webhook.py |
1282 | +++ b/src/provisioningserver/drivers/power/tests/test_webhook.py |
1283 | @@ -252,7 +252,7 @@ class TestWebhookPowerDriver(MAASTestCase): |
1284 | self.assertThat(mock_readBody, MockNotCalled()) |
1285 | |
1286 | def test_missing_packages(self): |
1287 | - self.assertItemsEqual([], self.webhook.detect_missing_packages()) |
1288 | + self.assertEqual([], self.webhook.detect_missing_packages()) |
1289 | |
1290 | def test_power_on(self): |
1291 | mock_webhook_request = self.patch(self.webhook, "_webhook_request") |
1292 | diff --git a/src/provisioningserver/drivers/power/tests/test_wedge.py b/src/provisioningserver/drivers/power/tests/test_wedge.py |
1293 | index 4c2412e..21b1263 100644 |
1294 | --- a/src/provisioningserver/drivers/power/tests/test_wedge.py |
1295 | +++ b/src/provisioningserver/drivers/power/tests/test_wedge.py |
1296 | @@ -40,7 +40,7 @@ class TestWedgePowerDriver(MAASTestCase): |
1297 | # there's nothing to check for, just confirm it returns [] |
1298 | driver = wedge_module.WedgePowerDriver() |
1299 | missing = driver.detect_missing_packages() |
1300 | - self.assertItemsEqual([], missing) |
1301 | + self.assertEqual([], missing) |
1302 | |
1303 | def test_run_wedge_command_returns_command_output(self): |
1304 | driver = WedgePowerDriver() |
1305 | diff --git a/src/provisioningserver/drivers/tests/test_base.py b/src/provisioningserver/drivers/tests/test_base.py |
1306 | index 4dc703e..a7440e7 100644 |
1307 | --- a/src/provisioningserver/drivers/tests/test_base.py |
1308 | +++ b/src/provisioningserver/drivers/tests/test_base.py |
1309 | @@ -400,7 +400,7 @@ class TestRegistries(MAASTestCase): |
1310 | self.useFixture(RegistryFixture()) |
1311 | |
1312 | def test_architecture_registry(self): |
1313 | - self.assertItemsEqual([], ArchitectureRegistry) |
1314 | + self.assertEqual([], list(ArchitectureRegistry)) |
1315 | ArchitectureRegistry.register_item("resource", sentinel.resource) |
1316 | self.assertIn( |
1317 | sentinel.resource, (item for name, item in ArchitectureRegistry) |
1318 | diff --git a/src/provisioningserver/import_images/tests/test_boot_image_mapping.py b/src/provisioningserver/import_images/tests/test_boot_image_mapping.py |
1319 | index de0938c..cd4ec66 100644 |
1320 | --- a/src/provisioningserver/import_images/tests/test_boot_image_mapping.py |
1321 | +++ b/src/provisioningserver/import_images/tests/test_boot_image_mapping.py |
1322 | @@ -24,13 +24,13 @@ class TestBootImageMapping(MAASTestCase): |
1323 | """Tests for `BootImageMapping`.""" |
1324 | |
1325 | def test_initially_empty(self): |
1326 | - self.assertItemsEqual([], BootImageMapping().items()) |
1327 | + self.assertCountEqual([], BootImageMapping().items()) |
1328 | |
1329 | def test_items_returns_items(self): |
1330 | image = make_image_spec() |
1331 | resource = factory.make_name("resource") |
1332 | image_dict = set_resource(image_spec=image, resource=resource) |
1333 | - self.assertItemsEqual([(image, resource)], image_dict.items()) |
1334 | + self.assertCountEqual([(image, resource)], image_dict.items()) |
1335 | |
1336 | def test_is_empty_returns_True_if_empty(self): |
1337 | self.assertTrue(BootImageMapping().is_empty()) |
1338 | @@ -45,14 +45,14 @@ class TestBootImageMapping(MAASTestCase): |
1339 | image = make_image_spec() |
1340 | resource = factory.make_name("resource") |
1341 | image_dict.setdefault(image, resource) |
1342 | - self.assertItemsEqual([(image, resource)], image_dict.items()) |
1343 | + self.assertCountEqual([(image, resource)], image_dict.items()) |
1344 | |
1345 | def test_setdefault_leaves_set_item_unchanged(self): |
1346 | image = make_image_spec() |
1347 | old_resource = factory.make_name("resource") |
1348 | image_dict = set_resource(image_spec=image, resource=old_resource) |
1349 | image_dict.setdefault(image, factory.make_name("newresource")) |
1350 | - self.assertItemsEqual([(image, old_resource)], image_dict.items()) |
1351 | + self.assertCountEqual([(image, old_resource)], image_dict.items()) |
1352 | |
1353 | def test_set_overwrites_item(self): |
1354 | image_dict = BootImageMapping() |
1355 | @@ -60,7 +60,7 @@ class TestBootImageMapping(MAASTestCase): |
1356 | resource = factory.make_name("resource") |
1357 | image_dict.setdefault(image, factory.make_name("resource")) |
1358 | image_dict.set(image, resource) |
1359 | - self.assertItemsEqual([(image, resource)], image_dict.items()) |
1360 | + self.assertCountEqual([(image, resource)], image_dict.items()) |
1361 | |
1362 | def test_dump_json_is_consistent(self): |
1363 | image = make_image_spec() |
1364 | diff --git a/src/provisioningserver/import_images/tests/test_boot_resources.py b/src/provisioningserver/import_images/tests/test_boot_resources.py |
1365 | index 05e088e..b1e7c02 100644 |
1366 | --- a/src/provisioningserver/import_images/tests/test_boot_resources.py |
1367 | +++ b/src/provisioningserver/import_images/tests/test_boot_resources.py |
1368 | @@ -407,14 +407,14 @@ class TestMain(MAASTestCase): |
1369 | self.assertEqual( |
1370 | [label], list(meta_data[osystem][arch][subarch][kflavor][release]) |
1371 | ) |
1372 | - self.assertItemsEqual( |
1373 | + self.assertEqual( |
1374 | [ |
1375 | "content_id", |
1376 | "kflavor", |
1377 | "path", |
1378 | "product_name", |
1379 | - "version_name", |
1380 | "subarches", |
1381 | + "version_name", |
1382 | ], |
1383 | list(meta_data[osystem][arch][subarch][kflavor][release][label]), |
1384 | ) |
1385 | diff --git a/src/provisioningserver/import_images/tests/test_cleanup.py b/src/provisioningserver/import_images/tests/test_cleanup.py |
1386 | index b95e6f0..b55101a 100644 |
1387 | --- a/src/provisioningserver/import_images/tests/test_cleanup.py |
1388 | +++ b/src/provisioningserver/import_images/tests/test_cleanup.py |
1389 | @@ -41,14 +41,14 @@ class TestCleanup(MAASTestCase): |
1390 | def test_list_old_snapshots_returns_all(self): |
1391 | storage = self.make_dir() |
1392 | snapshots = [self.make_snapshot_dir(storage) for _ in range(3)] |
1393 | - self.assertItemsEqual(snapshots, cleanup.list_old_snapshots(storage)) |
1394 | + self.assertCountEqual(snapshots, cleanup.list_old_snapshots(storage)) |
1395 | |
1396 | def test_list_old_snapshots_returns_all_but_current_directory(self): |
1397 | storage = self.make_dir() |
1398 | snapshots = [self.make_snapshot_dir(storage) for _ in range(3)] |
1399 | current_snapshot = self.make_snapshot_dir(storage) |
1400 | os.symlink(current_snapshot, os.path.join(storage, "current")) |
1401 | - self.assertItemsEqual(snapshots, cleanup.list_old_snapshots(storage)) |
1402 | + self.assertCountEqual(snapshots, cleanup.list_old_snapshots(storage)) |
1403 | |
1404 | def test_cleanup_snapshots_removes_all_old_snapshots(self): |
1405 | storage = self.make_dir() |
1406 | @@ -63,14 +63,14 @@ class TestCleanup(MAASTestCase): |
1407 | |
1408 | def test_list_unused_cache_files_returns_empty(self): |
1409 | storage = self.make_dir() |
1410 | - self.assertItemsEqual([], cleanup.list_unused_cache_files(storage)) |
1411 | + self.assertEqual([], cleanup.list_unused_cache_files(storage)) |
1412 | |
1413 | def test_list_unused_cache_files_returns_all_files_nlink_equal_one(self): |
1414 | storage = self.make_dir() |
1415 | cache_nlink_1 = [self.make_cache_file(storage) for _ in range(3)] |
1416 | for _ in range(3): |
1417 | self.make_cache_file(storage, link_count=randint(1, 3)) |
1418 | - self.assertItemsEqual( |
1419 | + self.assertCountEqual( |
1420 | cache_nlink_1, cleanup.list_unused_cache_files(storage) |
1421 | ) |
1422 | |
1423 | @@ -89,7 +89,7 @@ class TestCleanup(MAASTestCase): |
1424 | for filename in os.listdir(cache_dir) |
1425 | if os.path.isfile(os.path.join(cache_dir, filename)) |
1426 | ] |
1427 | - self.assertItemsEqual(cache_nlink_greater_than_1, remaining_cache) |
1428 | + self.assertCountEqual(cache_nlink_greater_than_1, remaining_cache) |
1429 | |
1430 | def test_cleanup_snapshots_and_cache_calls(self): |
1431 | storage = self.make_dir() |
1432 | diff --git a/src/provisioningserver/import_images/tests/test_download_descriptions.py b/src/provisioningserver/import_images/tests/test_download_descriptions.py |
1433 | index a9cc142..564e546 100644 |
1434 | --- a/src/provisioningserver/import_images/tests/test_download_descriptions.py |
1435 | +++ b/src/provisioningserver/import_images/tests/test_download_descriptions.py |
1436 | @@ -457,7 +457,7 @@ class TestRepoDumper(MAASTestCase): |
1437 | ), |
1438 | sentinel.contentsource, |
1439 | ) |
1440 | - image_specs = [ |
1441 | + image_specs = { |
1442 | make_image_spec( |
1443 | os=item["os"], |
1444 | release=item["release"], |
1445 | @@ -466,8 +466,8 @@ class TestRepoDumper(MAASTestCase): |
1446 | label=item["label"], |
1447 | ) |
1448 | for subarch in subarches |
1449 | - ] |
1450 | - self.assertItemsEqual(image_specs, list(boot_images_dict.mapping)) |
1451 | + } |
1452 | + self.assertEqual(image_specs, boot_images_dict.mapping.keys()) |
1453 | |
1454 | def test_insert_item_sets_compat_item_specific_to_subarch(self): |
1455 | boot_images_dict = BootImageMapping() |
1456 | @@ -624,7 +624,7 @@ class TestRepoDumper(MAASTestCase): |
1457 | ), |
1458 | sentinel.contentsource, |
1459 | ) |
1460 | - image_specs = [ |
1461 | + image_specs = { |
1462 | make_image_spec( |
1463 | os=item["os"], |
1464 | release="uefi", |
1465 | @@ -634,8 +634,8 @@ class TestRepoDumper(MAASTestCase): |
1466 | label=item["label"], |
1467 | ) |
1468 | for subarch in item["subarches"].split(",") |
1469 | - ] |
1470 | - self.assertItemsEqual(image_specs, list(boot_images_dict.mapping)) |
1471 | + } |
1472 | + self.assertEqual(image_specs, boot_images_dict.mapping.keys()) |
1473 | |
1474 | def test_insert_item_validates(self): |
1475 | boot_images_dict = BootImageMapping() |
1476 | @@ -654,7 +654,7 @@ class TestRepoDumper(MAASTestCase): |
1477 | ), |
1478 | sentinel.contentsource, |
1479 | ) |
1480 | - self.assertItemsEqual([], list(boot_images_dict.mapping)) |
1481 | + self.assertEqual(set(), boot_images_dict.mapping.keys()) |
1482 | |
1483 | def test_insert_item_doesnt_validate_when_instructed(self): |
1484 | boot_images_dict = BootImageMapping() |
1485 | @@ -673,7 +673,7 @@ class TestRepoDumper(MAASTestCase): |
1486 | ), |
1487 | sentinel.contentsource, |
1488 | ) |
1489 | - image_specs = [ |
1490 | + image_specs = { |
1491 | make_image_spec( |
1492 | os=item["os"], |
1493 | release=item["release"], |
1494 | @@ -682,8 +682,8 @@ class TestRepoDumper(MAASTestCase): |
1495 | label=item["label"], |
1496 | ) |
1497 | for subarch in item["subarches"].split(",") |
1498 | - ] |
1499 | - self.assertItemsEqual(image_specs, list(boot_images_dict.mapping)) |
1500 | + } |
1501 | + self.assertEqual(image_specs, boot_images_dict.mapping.keys()) |
1502 | |
1503 | def test_sync_does_propagate_ioerror(self): |
1504 | io_error = factory.make_exception_type(bases=(IOError,)) |
1505 | diff --git a/src/provisioningserver/import_images/tests/test_product_mapping.py b/src/provisioningserver/import_images/tests/test_product_mapping.py |
1506 | index 979b9f3..2a3eede 100644 |
1507 | --- a/src/provisioningserver/import_images/tests/test_product_mapping.py |
1508 | +++ b/src/provisioningserver/import_images/tests/test_product_mapping.py |
1509 | @@ -162,6 +162,6 @@ class TestMapProducts(MAASTestCase): |
1510 | resource["version_name"], |
1511 | ) |
1512 | self.assertEqual([key], list(products_mapping.mapping)) |
1513 | - self.assertItemsEqual( |
1514 | + self.assertCountEqual( |
1515 | [image1.subarch, image2.subarch], products_mapping.get(resource) |
1516 | ) |
1517 | diff --git a/src/provisioningserver/rackdservices/tests/test_tftp.py b/src/provisioningserver/rackdservices/tests/test_tftp.py |
1518 | index bd170f9..dda5c23 100644 |
1519 | --- a/src/provisioningserver/rackdservices/tests/test_tftp.py |
1520 | +++ b/src/provisioningserver/rackdservices/tests/test_tftp.py |
1521 | @@ -921,7 +921,7 @@ class TestTFTPService(MAASTestCase): |
1522 | ) |
1523 | self.assertThat(tftp_service.getServers(), AllMatch(expected_server)) |
1524 | # Only the interface used for each service differs. |
1525 | - self.assertItemsEqual( |
1526 | + self.assertCountEqual( |
1527 | [svc.kwargs for svc in tftp_service.getServers()], |
1528 | [{"interface": interface} for interface in interfaces], |
1529 | ) |
1530 | diff --git a/src/provisioningserver/tests/test_config.py b/src/provisioningserver/tests/test_config.py |
1531 | index 5995cd2..3c895d3 100644 |
1532 | --- a/src/provisioningserver/tests/test_config.py |
1533 | +++ b/src/provisioningserver/tests/test_config.py |
1534 | @@ -446,7 +446,7 @@ class TestConfigurationFile(MAASTestCase): |
1535 | pass # Write nothing to the file. |
1536 | config = ConfigurationFile(config_file) |
1537 | config.load() |
1538 | - self.assertItemsEqual(set(config), set()) |
1539 | + self.assertEqual(set(config), set()) |
1540 | |
1541 | def test_load_file_with_non_mapping_crashes(self): |
1542 | config_file = os.path.join(self.make_dir(), "config") |
1543 | diff --git a/src/provisioningserver/tests/test_events.py b/src/provisioningserver/tests/test_events.py |
1544 | index 4c614a0..6dea374 100644 |
1545 | --- a/src/provisioningserver/tests/test_events.py |
1546 | +++ b/src/provisioningserver/tests/test_events.py |
1547 | @@ -39,7 +39,7 @@ from provisioningserver.utils.testing import MAASIDFixture |
1548 | class TestEvents(MAASTestCase): |
1549 | def test_every_event_has_details(self): |
1550 | all_events = map_enum(EVENT_TYPES) |
1551 | - self.assertItemsEqual(all_events.values(), EVENT_DETAILS.keys()) |
1552 | + self.assertEqual(set(all_events.values()), EVENT_DETAILS.keys()) |
1553 | self.assertThat( |
1554 | EVENT_DETAILS.values(), AllMatch(IsInstance(EventDetail)) |
1555 | ) |
1556 | diff --git a/src/provisioningserver/tests/test_service_monitor.py b/src/provisioningserver/tests/test_service_monitor.py |
1557 | index e2deee2..8147d5b 100644 |
1558 | --- a/src/provisioningserver/tests/test_service_monitor.py |
1559 | +++ b/src/provisioningserver/tests/test_service_monitor.py |
1560 | @@ -68,8 +68,8 @@ class TestSyslogServiceOnRack(MAASTestCase): |
1561 | |
1562 | class TestGlobalServiceMonitor(MAASTestCase): |
1563 | def test_includes_all_services(self): |
1564 | - self.assertItemsEqual( |
1565 | - [ |
1566 | + self.assertEqual( |
1567 | + { |
1568 | "http", |
1569 | "dhcpd", |
1570 | "dhcpd6", |
1571 | @@ -77,6 +77,6 @@ class TestGlobalServiceMonitor(MAASTestCase): |
1572 | "ntp_rack", |
1573 | "proxy_rack", |
1574 | "syslog_rack", |
1575 | - ], |
1576 | + }, |
1577 | service_monitor._services.keys(), |
1578 | ) |
1579 | diff --git a/src/provisioningserver/tests/test_tags.py b/src/provisioningserver/tests/test_tags.py |
1580 | index 9db756f..4c6f7ec 100644 |
1581 | --- a/src/provisioningserver/tests/test_tags.py |
1582 | +++ b/src/provisioningserver/tests/test_tags.py |
1583 | @@ -484,7 +484,7 @@ class TestGenNodeDetails(MAASTestCase): |
1584 | get_details_for_nodes.side_effect = lambda *args: responses.pop(0) |
1585 | self.fake_merge_details() |
1586 | node_details = tags.gen_node_details(sentinel.client, batches) |
1587 | - self.assertItemsEqual( |
1588 | + self.assertCountEqual( |
1589 | [("s1", "merged:foo"), ("s2", "merged:bar"), ("s3", "merged:cob")], |
1590 | node_details, |
1591 | ) |
1592 | diff --git a/src/provisioningserver/tests/test_upgrade_cluster.py b/src/provisioningserver/tests/test_upgrade_cluster.py |
1593 | index 03e0d76..e70ea46 100644 |
1594 | --- a/src/provisioningserver/tests/test_upgrade_cluster.py |
1595 | +++ b/src/provisioningserver/tests/test_upgrade_cluster.py |
1596 | @@ -299,7 +299,7 @@ class TestMigrateArchitecturesIntoUbuntuDirectory(MAASTestCase): |
1597 | upgrade_cluster.migrate_architectures_into_ubuntu_directory( |
1598 | self.current_dir |
1599 | ) |
1600 | - self.assertItemsEqual( |
1601 | + self.assertCountEqual( |
1602 | arches, |
1603 | list_subdirs(os.path.join(storage_dir, "current", "ubuntu")), |
1604 | ) |
1605 | @@ -330,7 +330,7 @@ class TestMigrateArchitecturesIntoUbuntuDirectory(MAASTestCase): |
1606 | upgrade_cluster.migrate_architectures_into_ubuntu_directory( |
1607 | self.current_dir |
1608 | ) |
1609 | - self.assertItemsEqual( |
1610 | + self.assertEqual( |
1611 | [move_arch], |
1612 | list_subdirs(os.path.join(storage_dir, "current", "ubuntu")), |
1613 | ) |
1614 | @@ -373,7 +373,7 @@ class TestMigrateArchitecturesIntoUbuntuDirectory(MAASTestCase): |
1615 | upgrade_cluster.migrate_architectures_into_ubuntu_directory( |
1616 | self.current_dir |
1617 | ) |
1618 | - self.assertItemsEqual( |
1619 | + self.assertEqual( |
1620 | [move_arch], |
1621 | list_subdirs(os.path.join(storage_dir, "current", "ubuntu")), |
1622 | ) |
1623 | diff --git a/src/provisioningserver/utils/tests/test_arp.py b/src/provisioningserver/utils/tests/test_arp.py |
1624 | index 6565fd3..9747819 100644 |
1625 | --- a/src/provisioningserver/utils/tests/test_arp.py |
1626 | +++ b/src/provisioningserver/utils/tests/test_arp.py |
1627 | @@ -214,7 +214,7 @@ class TestARP(MAASTestCase): |
1628 | op=ARP_OPERATION.REQUEST, |
1629 | ) |
1630 | ) |
1631 | - self.assertItemsEqual( |
1632 | + self.assertCountEqual( |
1633 | arp.bindings(), [(IPAddress(pkt_sender_ip), EUI(pkt_sender_mac))] |
1634 | ) |
1635 | |
1636 | @@ -232,7 +232,7 @@ class TestARP(MAASTestCase): |
1637 | op=ARP_OPERATION.REPLY, |
1638 | ) |
1639 | ) |
1640 | - self.assertItemsEqual( |
1641 | + self.assertCountEqual( |
1642 | arp.bindings(), |
1643 | [ |
1644 | (IPAddress(pkt_sender_ip), EUI(pkt_sender_mac)), |
1645 | @@ -254,7 +254,7 @@ class TestARP(MAASTestCase): |
1646 | op=ARP_OPERATION.REQUEST, |
1647 | ) |
1648 | ) |
1649 | - self.assertItemsEqual(arp.bindings(), []) |
1650 | + self.assertCountEqual(arp.bindings(), []) |
1651 | |
1652 | def test_bindings__skips_null_source_ip_in_reply(self): |
1653 | pkt_sender_mac = "01:02:03:04:05:06" |
1654 | @@ -270,7 +270,7 @@ class TestARP(MAASTestCase): |
1655 | op=ARP_OPERATION.REPLY, |
1656 | ) |
1657 | ) |
1658 | - self.assertItemsEqual( |
1659 | + self.assertCountEqual( |
1660 | arp.bindings(), [(IPAddress(pkt_target_ip), EUI(pkt_target_mac))] |
1661 | ) |
1662 | |
1663 | @@ -288,7 +288,7 @@ class TestARP(MAASTestCase): |
1664 | op=ARP_OPERATION.REPLY, |
1665 | ) |
1666 | ) |
1667 | - self.assertItemsEqual( |
1668 | + self.assertCountEqual( |
1669 | arp.bindings(), [(IPAddress(pkt_sender_ip), EUI(pkt_sender_mac))] |
1670 | ) |
1671 | |
1672 | @@ -306,7 +306,7 @@ class TestARP(MAASTestCase): |
1673 | op=ARP_OPERATION.REQUEST, |
1674 | ) |
1675 | ) |
1676 | - self.assertItemsEqual(arp.bindings(), []) |
1677 | + self.assertCountEqual(arp.bindings(), []) |
1678 | |
1679 | def test_bindings__skips_null_source_eui_in_reply(self): |
1680 | pkt_sender_mac = "00:00:00:00:00:00" |
1681 | @@ -322,7 +322,7 @@ class TestARP(MAASTestCase): |
1682 | op=ARP_OPERATION.REPLY, |
1683 | ) |
1684 | ) |
1685 | - self.assertItemsEqual( |
1686 | + self.assertCountEqual( |
1687 | arp.bindings(), [(IPAddress(pkt_target_ip), EUI(pkt_target_mac))] |
1688 | ) |
1689 | |
1690 | @@ -340,7 +340,7 @@ class TestARP(MAASTestCase): |
1691 | op=ARP_OPERATION.REPLY, |
1692 | ) |
1693 | ) |
1694 | - self.assertItemsEqual( |
1695 | + self.assertCountEqual( |
1696 | arp.bindings(), [(IPAddress(pkt_sender_ip), EUI(pkt_sender_mac))] |
1697 | ) |
1698 | |
1699 | diff --git a/src/provisioningserver/utils/tests/test_enum.py b/src/provisioningserver/utils/tests/test_enum.py |
1700 | index c74dd92..99b4a6a 100644 |
1701 | --- a/src/provisioningserver/utils/tests/test_enum.py |
1702 | +++ b/src/provisioningserver/utils/tests/test_enum.py |
1703 | @@ -14,7 +14,7 @@ class TestEnum(MAASTestCase): |
1704 | ONE = 1 |
1705 | TWO = 2 |
1706 | |
1707 | - self.assertItemsEqual(["ONE", "TWO"], map_enum(Enum).keys()) |
1708 | + self.assertEqual({"ONE", "TWO"}, map_enum(Enum).keys()) |
1709 | |
1710 | def test_map_enum_omits_private_or_special_methods(self): |
1711 | class Enum: |
1712 | @@ -29,7 +29,7 @@ class TestEnum(MAASTestCase): |
1713 | |
1714 | VALUE = 9 |
1715 | |
1716 | - self.assertItemsEqual(["VALUE"], map_enum(Enum).keys()) |
1717 | + self.assertEqual({"VALUE"}, map_enum(Enum).keys()) |
1718 | |
1719 | def test_map_enum_maps_values(self): |
1720 | class Enum: |
1721 | diff --git a/src/provisioningserver/utils/tests/test_events.py b/src/provisioningserver/utils/tests/test_events.py |
1722 | index 59e85bc..c9a677f 100644 |
1723 | --- a/src/provisioningserver/utils/tests/test_events.py |
1724 | +++ b/src/provisioningserver/utils/tests/test_events.py |
1725 | @@ -9,7 +9,6 @@ from unittest.mock import MagicMock, sentinel |
1726 | from testtools.matchers import IsInstance |
1727 | |
1728 | from maastesting.factory import factory |
1729 | -from maastesting.matchers import MockCalledOnceWith |
1730 | from maastesting.testcase import MAASTestCase |
1731 | from provisioningserver.utils.events import Event, EventGroup |
1732 | |
1733 | @@ -20,27 +19,27 @@ class TestEvent(MAASTestCase): |
1734 | def test_registerHandler(self): |
1735 | event = Event() |
1736 | event.registerHandler(sentinel.handler) |
1737 | - self.assertItemsEqual([sentinel.handler], event.handlers) |
1738 | + self.assertEqual({sentinel.handler}, event.handlers) |
1739 | |
1740 | def test_registerHandler_during_fire(self): |
1741 | event = Event() |
1742 | event.registerHandler(event.registerHandler) |
1743 | event.fire(sentinel.otherHandler) |
1744 | - self.assertItemsEqual( |
1745 | - [event.registerHandler, sentinel.otherHandler], event.handlers |
1746 | + self.assertEqual( |
1747 | + {event.registerHandler, sentinel.otherHandler}, event.handlers |
1748 | ) |
1749 | |
1750 | def test_unregisterHandler(self): |
1751 | event = Event() |
1752 | event.registerHandler(sentinel.handler) |
1753 | event.unregisterHandler(sentinel.handler) |
1754 | - self.assertItemsEqual([], event.handlers) |
1755 | + self.assertEqual(set(), event.handlers) |
1756 | |
1757 | def test_unregisterHandler_during_fire(self): |
1758 | event = Event() |
1759 | event.registerHandler(event.unregisterHandler) |
1760 | event.fire(event.unregisterHandler) |
1761 | - self.assertItemsEqual([], event.handlers) |
1762 | + self.assertEqual(set(), event.handlers) |
1763 | |
1764 | def test_fire_calls_all_handlers(self): |
1765 | event = Event() |
1766 | @@ -54,8 +53,8 @@ class TestEvent(MAASTestCase): |
1767 | for _ in range(3) |
1768 | } |
1769 | event.fire(*args, **kwargs) |
1770 | - self.assertThat(handler_one, MockCalledOnceWith(*args, **kwargs)) |
1771 | - self.assertThat(handler_two, MockCalledOnceWith(*args, **kwargs)) |
1772 | + handler_one.mock_called_once_with(*args, **kwargs) |
1773 | + handler_two.mock_called_once_with(*args, **kwargs) |
1774 | |
1775 | |
1776 | class TestEventGroup(MAASTestCase): |
1777 | diff --git a/src/provisioningserver/utils/tests/test_ipaddr.py b/src/provisioningserver/utils/tests/test_ipaddr.py |
1778 | index 02663c9..adf6c59 100644 |
1779 | --- a/src/provisioningserver/utils/tests/test_ipaddr.py |
1780 | +++ b/src/provisioningserver/utils/tests/test_ipaddr.py |
1781 | @@ -162,7 +162,7 @@ class TestGetIPAddr(MAASTestCase): |
1782 | patch_get_ip_addr = self.patch(ipaddr_module, "get_ip_addr") |
1783 | patch_get_ip_addr.return_value = results |
1784 | observed = get_mac_addresses() |
1785 | - self.assertItemsEqual(mac_addresses, observed) |
1786 | + self.assertCountEqual(mac_addresses, observed) |
1787 | |
1788 | def test_get_mac_addresses_ignores_duplicates(self): |
1789 | mac_addresses = set() |
1790 | @@ -174,7 +174,7 @@ class TestGetIPAddr(MAASTestCase): |
1791 | patch_get_ip_addr = self.patch(ipaddr_module, "get_ip_addr") |
1792 | patch_get_ip_addr.return_value = results |
1793 | observed = get_mac_addresses() |
1794 | - self.assertItemsEqual(mac_addresses, observed) |
1795 | + self.assertCountEqual(mac_addresses, observed) |
1796 | |
1797 | |
1798 | class TestUpdateInterfaceType(FakeSysProcTestCase): |
1799 | diff --git a/src/provisioningserver/utils/tests/test_network.py b/src/provisioningserver/utils/tests/test_network.py |
1800 | index dfe067d..9dccf19 100644 |
1801 | --- a/src/provisioningserver/utils/tests/test_network.py |
1802 | +++ b/src/provisioningserver/utils/tests/test_network.py |
1803 | @@ -519,7 +519,7 @@ class TestGetAllInterfaceAddresses(MAASTestCase): |
1804 | for ipv4, ipv6 in ips |
1805 | } |
1806 | patch_interfaces(self, interfaces) |
1807 | - self.assertItemsEqual(v4_ips + v6_ips, get_all_interface_addresses()) |
1808 | + self.assertCountEqual(v4_ips + v6_ips, get_all_interface_addresses()) |
1809 | |
1810 | |
1811 | class TestGetAllInterfaceAddressesWithMultipleClasses(MAASTestCase): |
1812 | @@ -1958,7 +1958,7 @@ class TestInterfaceChildren(MAASTestCase): |
1813 | eth0_children = list( |
1814 | interface_children("eth0", interfaces, children_map) |
1815 | ) |
1816 | - self.assertItemsEqual( |
1817 | + self.assertCountEqual( |
1818 | eth0_children, |
1819 | [ |
1820 | ("eth0.100", {"parents": ["eth0"]}), |
1821 | @@ -1968,7 +1968,7 @@ class TestInterfaceChildren(MAASTestCase): |
1822 | eth1_children = list( |
1823 | interface_children("eth1", interfaces, children_map) |
1824 | ) |
1825 | - self.assertItemsEqual( |
1826 | + self.assertCountEqual( |
1827 | eth1_children, |
1828 | [ |
1829 | ("eth1.100", {"parents": ["eth1"]}), |
1830 | @@ -1997,7 +1997,7 @@ class TestGetDefaultMonitoredInterfaces(MAASTestCase): |
1831 | "eth0": {"parents": [], "type": "physical", "enabled": False}, |
1832 | "eth1": {"parents": [], "type": "physical", "enabled": True}, |
1833 | } |
1834 | - self.assertItemsEqual( |
1835 | + self.assertEqual( |
1836 | get_default_monitored_interfaces(interfaces), ["eth1"] |
1837 | ) |
1838 | |
1839 | @@ -2018,7 +2018,7 @@ class TestGetDefaultMonitoredInterfaces(MAASTestCase): |
1840 | "enabled": False, |
1841 | }, |
1842 | } |
1843 | - self.assertItemsEqual( |
1844 | + self.assertEqual( |
1845 | get_default_monitored_interfaces(interfaces), ["bond0"] |
1846 | ) |
1847 | |
1848 | @@ -2029,7 +2029,7 @@ class TestGetDefaultMonitoredInterfaces(MAASTestCase): |
1849 | "br0": {"parents": ["eth0"], "type": "bridge", "enabled": True}, |
1850 | "virbr0": {"parents": [], "type": "bridge", "enabled": True}, |
1851 | } |
1852 | - self.assertItemsEqual( |
1853 | + self.assertEqual( |
1854 | get_default_monitored_interfaces(interfaces), |
1855 | ["eth0", "eth1", "virbr0"], |
1856 | ) |
1857 | @@ -2039,7 +2039,7 @@ class TestGetDefaultMonitoredInterfaces(MAASTestCase): |
1858 | "eth0": {"parents": [], "type": "physical", "enabled": True}, |
1859 | "eth0.100": {"parents": ["eth0"], "type": "vlan", "enabled": True}, |
1860 | } |
1861 | - self.assertItemsEqual( |
1862 | + self.assertEqual( |
1863 | get_default_monitored_interfaces(interfaces), ["eth0"] |
1864 | ) |
1865 | |
1866 | diff --git a/src/provisioningserver/utils/tests/test_ps.py b/src/provisioningserver/utils/tests/test_ps.py |
1867 | index ca2bbad..11e873e 100644 |
1868 | --- a/src/provisioningserver/utils/tests/test_ps.py |
1869 | +++ b/src/provisioningserver/utils/tests/test_ps.py |
1870 | @@ -141,7 +141,7 @@ class TestGetRunningPIDsWithCommand(MAASTestCase): |
1871 | proc_path = self.make_dir() |
1872 | self.make_init_process(proc_path) |
1873 | command = factory.make_name("command") |
1874 | - pids_running_command = set(random.randint(2, 999) for _ in range(3)) |
1875 | + pids_running_command = [random.randint(2, 999) for _ in range(3)] |
1876 | for pid in pids_running_command: |
1877 | self.make_process(proc_path, pid, command=command) |
1878 | pids_not_running_command = set( |
1879 | @@ -162,7 +162,7 @@ class TestGetRunningPIDsWithCommand(MAASTestCase): |
1880 | ps_module, "running_in_container" |
1881 | ) |
1882 | mock_running_in_container.return_value = False |
1883 | - self.assertItemsEqual( |
1884 | + self.assertCountEqual( |
1885 | pids_running_command, |
1886 | get_running_pids_with_command(command, proc_path=proc_path), |
1887 | ) |
1888 | @@ -171,12 +171,12 @@ class TestGetRunningPIDsWithCommand(MAASTestCase): |
1889 | proc_path = self.make_dir() |
1890 | self.make_init_process(proc_path) |
1891 | command = factory.make_name("command") |
1892 | - pids_running_command = set(random.randint(2, 999) for _ in range(3)) |
1893 | + pids_running_command = [random.randint(2, 999) for _ in range(3)] |
1894 | for pid in pids_running_command: |
1895 | self.make_process(proc_path, pid, command=command) |
1896 | # Remove the comm file to test the exception handling. |
1897 | os.remove(os.path.join(proc_path, str(pid), "comm")) |
1898 | - self.assertItemsEqual( |
1899 | + self.assertEqual( |
1900 | [], get_running_pids_with_command(command, proc_path=proc_path) |
1901 | ) |
1902 | |
1903 | @@ -184,7 +184,7 @@ class TestGetRunningPIDsWithCommand(MAASTestCase): |
1904 | proc_path = self.make_dir() |
1905 | self.make_init_process(proc_path, in_container=True) |
1906 | command = factory.make_name("command") |
1907 | - pids_running_command = set(random.randint(2, 999) for _ in range(3)) |
1908 | + pids_running_command = [random.randint(2, 999) for _ in range(3)] |
1909 | for pid in pids_running_command: |
1910 | self.make_process( |
1911 | proc_path, pid, in_container=True, command=command |
1912 | @@ -203,7 +203,7 @@ class TestGetRunningPIDsWithCommand(MAASTestCase): |
1913 | ps_module, "running_in_container" |
1914 | ) |
1915 | mock_running_in_container.return_value = True |
1916 | - self.assertItemsEqual( |
1917 | + self.assertCountEqual( |
1918 | pids_running_command, |
1919 | get_running_pids_with_command(command, proc_path=proc_path), |
1920 | ) |
1921 | diff --git a/src/provisioningserver/utils/tests/test_registry.py b/src/provisioningserver/utils/tests/test_registry.py |
1922 | index c13a758..c56455f 100644 |
1923 | --- a/src/provisioningserver/utils/tests/test_registry.py |
1924 | +++ b/src/provisioningserver/utils/tests/test_registry.py |
1925 | @@ -35,12 +35,12 @@ class TestRegistry(MAASTestCase): |
1926 | from provisioningserver.drivers import Registry as Registry2 |
1927 | |
1928 | Registry2.register_item("resource2", sentinel.resource2) |
1929 | - self.assertItemsEqual( |
1930 | + self.assertEqual( |
1931 | [ |
1932 | ("resource1", sentinel.resource1), |
1933 | ("resource2", sentinel.resource2), |
1934 | ], |
1935 | - Registry2, |
1936 | + list(Registry2), |
1937 | ) |
1938 | |
1939 | def test_getitem__(self): |
1940 | diff --git a/src/provisioningserver/utils/tests/test_utils.py b/src/provisioningserver/utils/tests/test_utils.py |
1941 | index c4cbeca..1a0cefe 100644 |
1942 | --- a/src/provisioningserver/utils/tests/test_utils.py |
1943 | +++ b/src/provisioningserver/utils/tests/test_utils.py |
1944 | @@ -154,36 +154,39 @@ class TestFlatten(MAASTestCase): |
1945 | self.assertThat(flatten(()), IsInstance(Iterator)) |
1946 | |
1947 | def test_returns_empty_when_nothing_provided(self): |
1948 | - self.assertItemsEqual([], flatten([])) |
1949 | - self.assertItemsEqual([], flatten(())) |
1950 | - self.assertItemsEqual([], flatten({})) |
1951 | - self.assertItemsEqual([], flatten(set())) |
1952 | - self.assertItemsEqual([], flatten(([], (), {}, set()))) |
1953 | - self.assertItemsEqual([], flatten(([[]], ((),)))) |
1954 | + self.assertEqual([], list(flatten([]))) |
1955 | + self.assertEqual([], list(flatten(()))) |
1956 | + self.assertEqual([], list(flatten({}))) |
1957 | + self.assertEqual([], list(flatten(set()))) |
1958 | + self.assertEqual([], list(flatten(([], (), {}, set())))) |
1959 | + self.assertEqual([], list(flatten(([[]], ((),))))) |
1960 | |
1961 | def test_flattens_list(self): |
1962 | - self.assertItemsEqual([1, 2, 3, "abc"], flatten([1, 2, 3, "abc"])) |
1963 | + self.assertEqual([1, 2, 3, "abc"], list(flatten([1, 2, 3, "abc"]))) |
1964 | |
1965 | def test_flattens_nested_lists(self): |
1966 | - self.assertItemsEqual([1, 2, 3, "abc"], flatten([[[1, 2, 3, "abc"]]])) |
1967 | + self.assertEqual([1, 2, 3, "abc"], list(flatten([[[1, 2, 3, "abc"]]]))) |
1968 | |
1969 | def test_flattens_arbitrarily_nested_lists(self): |
1970 | - self.assertItemsEqual( |
1971 | + self.assertEqual( |
1972 | [1, "two", "three", 4, 5, 6], |
1973 | - flatten([[1], ["two", "three"], [4], [5, 6]]), |
1974 | + list(flatten([[1], ["two", "three"], [4], [5, 6]])), |
1975 | ) |
1976 | |
1977 | def test_flattens_other_iterables(self): |
1978 | - self.assertItemsEqual( |
1979 | - [1, 2, 3.3, 4, 5, 6], flatten([1, 2, {3.3, 4, (5, 6)}]) |
1980 | + self.assertEqual( |
1981 | + [1, 2, 3.3, 4, 5, 6], list(flatten([1, 2, {3.3, 4, (5, 6)}])) |
1982 | ) |
1983 | |
1984 | def test_treats_string_like_objects_as_leaves(self): |
1985 | # Strings are iterable, but we know they cannot be flattened further. |
1986 | - self.assertItemsEqual(["abcdef"], flatten("abcdef")) |
1987 | + self.assertEqual(["abcdef"], list(flatten("abcdef"))) |
1988 | |
1989 | def test_takes_star_args(self): |
1990 | - self.assertItemsEqual("abcdef", flatten("a", "b", "c", "d", "e", "f")) |
1991 | + self.assertEqual( |
1992 | + ["a", "b", "c", "d", "e", "f"], |
1993 | + list(flatten("a", "b", "c", "d", "e", "f")), |
1994 | + ) |
1995 | |
1996 | |
1997 | class TestSudo(MAASTestCase): |
UNIT TESTS qual-provisioni ngserver lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas
-b no-assertItemsE
STATUS: FAILED maas-ci. internal: 8080/job/ maas/job/ branch- tester/ 11004/console 6c496957501136e a4a806f5a9
LOG: http://
COMMIT: 24be81a9f8d74ef