Merge ~d0ugal/maas:less-underscores-2.8 into maas:2.8

Proposed by Dougal Matthews
Status: Merged
Approved by: Dougal Matthews
Approved revision: ac3f303b3b08dc8aa785e2470b95296f7fa0baee
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~d0ugal/maas:less-underscores-2.8
Merge into: maas:2.8
Diff against target: 33597 lines (+3793/-3793)
219 files modified
src/maascli/tests/test_utils.py (+5/-5)
src/maasserver/api/tests/test_discoveries.py (+34/-34)
src/maasserver/api/tests/test_doc.py (+21/-21)
src/maasserver/api/tests/test_events.py (+3/-3)
src/maasserver/api/tests/test_machine.py (+33/-33)
src/maasserver/api/tests/test_machines.py (+1/-1)
src/maasserver/api/tests/test_subnets.py (+17/-17)
src/maasserver/api/tests/test_support.py (+2/-2)
src/maasserver/api/tests/test_users.py (+2/-2)
src/maasserver/clusterrpc/tests/test_boot_images.py (+13/-13)
src/maasserver/clusterrpc/tests/test_driver_parameters.py (+13/-13)
src/maasserver/clusterrpc/tests/test_pods.py (+18/-18)
src/maasserver/clusterrpc/tests/test_power.py (+8/-8)
src/maasserver/clusterrpc/tests/test_utils.py (+6/-6)
src/maasserver/dns/tests/test_config.py (+18/-18)
src/maasserver/dns/tests/test_zonegenerator.py (+1/-1)
src/maasserver/forms/tests/test_clone.py (+6/-6)
src/maasserver/forms/tests/test_controller.py (+6/-6)
src/maasserver/forms/tests/test_dhcpsnippet.py (+20/-20)
src/maasserver/forms/tests/test_dnsdata.py (+3/-3)
src/maasserver/forms/tests/test_dnsresource.py (+7/-7)
src/maasserver/forms/tests/test_domain.py (+3/-3)
src/maasserver/forms/tests/test_ephemeral.py (+31/-31)
src/maasserver/forms/tests/test_fabric.py (+3/-3)
src/maasserver/forms/tests/test_fannetwork.py (+6/-6)
src/maasserver/forms/tests/test_interface.py (+69/-69)
src/maasserver/forms/tests/test_interface_link.py (+42/-42)
src/maasserver/forms/tests/test_iprange.py (+10/-10)
src/maasserver/forms/tests/test_machinewithmacaddresses.py (+10/-10)
src/maasserver/forms/tests/test_notification.py (+4/-4)
src/maasserver/forms/tests/test_packagerepository.py (+19/-19)
src/maasserver/forms/tests/test_parameters.py (+59/-59)
src/maasserver/forms/tests/test_pods.py (+48/-48)
src/maasserver/forms/tests/test_script.py (+50/-50)
src/maasserver/forms/tests/test_space.py (+4/-4)
src/maasserver/forms/tests/test_staticroute.py (+4/-4)
src/maasserver/forms/tests/test_subnet.py (+24/-24)
src/maasserver/forms/tests/test_vlan.py (+12/-12)
src/maasserver/management/commands/tests/test_config.py (+9/-9)
src/maasserver/management/commands/tests/test_generate_sample_data.py (+2/-2)
src/maasserver/models/migrations/tests/test_create_default_storage_layout.py (+2/-2)
src/maasserver/models/signals/tests/test_interfaces.py (+17/-17)
src/maasserver/models/signals/tests/test_nodes.py (+4/-4)
src/maasserver/models/signals/tests/test_power.py (+6/-6)
src/maasserver/models/signals/tests/test_scriptresult.py (+7/-7)
src/maasserver/models/signals/tests/test_services.py (+10/-10)
src/maasserver/models/tests/test_blockdevice.py (+22/-22)
src/maasserver/models/tests/test_bmc.py (+4/-4)
src/maasserver/models/tests/test_bootresource.py (+29/-29)
src/maasserver/models/tests/test_cacheset.py (+9/-9)
src/maasserver/models/tests/test_controllerinfo.py (+10/-10)
src/maasserver/models/tests/test_discovery.py (+21/-21)
src/maasserver/models/tests/test_dnsdata.py (+6/-6)
src/maasserver/models/tests/test_dnsresource.py (+21/-21)
src/maasserver/models/tests/test_domain.py (+11/-11)
src/maasserver/models/tests/test_fabric.py (+11/-11)
src/maasserver/models/tests/test_fannetwork.py (+6/-6)
src/maasserver/models/tests/test_filesystemgroup.py (+27/-27)
src/maasserver/models/tests/test_interface.py (+121/-121)
src/maasserver/models/tests/test_iprange.py (+42/-42)
src/maasserver/models/tests/test_iscsiblockdevice.py (+3/-3)
src/maasserver/models/tests/test_largefile.py (+1/-1)
src/maasserver/models/tests/test_node.py (+166/-166)
src/maasserver/models/tests/test_nodeprobeddetails.py (+3/-3)
src/maasserver/models/tests/test_rdns.py (+11/-11)
src/maasserver/models/tests/test_resourcepool.py (+7/-7)
src/maasserver/models/tests/test_space.py (+11/-11)
src/maasserver/models/tests/test_staticipaddress.py (+11/-11)
src/maasserver/models/tests/test_staticroute.py (+6/-6)
src/maasserver/models/tests/test_subnet.py (+75/-75)
src/maasserver/models/tests/test_tag.py (+7/-7)
src/maasserver/models/tests/test_vlan.py (+8/-8)
src/maasserver/prometheus/tests/test_stats.py (+3/-3)
src/maasserver/regiondservices/tests/test_active_discovery.py (+11/-11)
src/maasserver/regiondservices/tests/test_ntp.py (+3/-3)
src/maasserver/regiondservices/tests/test_reverse_dns.py (+6/-6)
src/maasserver/regiondservices/tests/test_service_monitor_service.py (+1/-1)
src/maasserver/regiondservices/tests/test_syslog.py (+3/-3)
src/maasserver/rpc/tests/test_boot.py (+58/-58)
src/maasserver/rpc/tests/test_events.py (+11/-11)
src/maasserver/rpc/tests/test_nodes.py (+30/-30)
src/maasserver/rpc/tests/test_rackcontrollers.py (+8/-8)
src/maasserver/rpc/tests/test_regionservice.py (+6/-6)
src/maasserver/rpc/tests/test_regionservice_calls.py (+8/-8)
src/maasserver/testing/tests/test_sampledata.py (+1/-1)
src/maasserver/tests/test_bootresources.py (+30/-30)
src/maasserver/tests/test_bootsources.py (+18/-18)
src/maasserver/tests/test_compose_preseed.py (+1/-1)
src/maasserver/tests/test_config.py (+6/-6)
src/maasserver/tests/test_dbviews.py (+7/-7)
src/maasserver/tests/test_dhcp.py (+82/-82)
src/maasserver/tests/test_eventloop.py (+3/-3)
src/maasserver/tests/test_ipc.py (+3/-3)
src/maasserver/tests/test_listener.py (+25/-25)
src/maasserver/tests/test_macaroon_auth.py (+2/-2)
src/maasserver/tests/test_middleware.py (+5/-5)
src/maasserver/tests/test_node_action.py (+9/-9)
src/maasserver/tests/test_populate_tags.py (+7/-7)
src/maasserver/tests/test_preseed.py (+28/-28)
src/maasserver/tests/test_preseed_network.py (+26/-26)
src/maasserver/tests/test_preseed_storage.py (+18/-18)
src/maasserver/tests/test_proxyconfig.py (+11/-11)
src/maasserver/tests/test_rbac.py (+1/-1)
src/maasserver/tests/test_region_controller.py (+17/-17)
src/maasserver/tests/test_routablepairs.py (+9/-9)
src/maasserver/tests/test_security.py (+7/-7)
src/maasserver/tests/test_server_address.py (+14/-14)
src/maasserver/tests/test_service_monitor.py (+1/-1)
src/maasserver/tests/test_start_up.py (+13/-13)
src/maasserver/tests/test_stats.py (+3/-3)
src/maasserver/tests/test_status_monitor.py (+2/-2)
src/maasserver/tests/test_storage_layouts.py (+38/-38)
src/maasserver/tests/test_webapp.py (+5/-5)
src/maasserver/triggers/tests/test_websocket_listener.py (+194/-194)
src/maasserver/utils/tests/test_asynchronous.py (+16/-16)
src/maasserver/utils/tests/test_converters.py (+6/-6)
src/maasserver/utils/tests/test_dbtasks.py (+15/-15)
src/maasserver/utils/tests/test_interfaces.py (+4/-4)
src/maasserver/utils/tests/test_mac.py (+2/-2)
src/maasserver/utils/tests/test_orm.py (+81/-81)
src/maasserver/utils/tests/test_osystems.py (+4/-4)
src/maasserver/utils/tests/test_signals.py (+9/-9)
src/maasserver/utils/tests/test_storage.py (+15/-15)
src/maasserver/utils/tests/test_threads.py (+12/-12)
src/maasserver/utils/tests/test_utils.py (+12/-12)
src/maasserver/utils/tests/test_views.py (+24/-24)
src/maasserver/views/tests/test_account.py (+15/-15)
src/maasserver/websockets/handlers/tests/test_bootresource.py (+6/-6)
src/maasserver/websockets/handlers/tests/test_discovery.py (+7/-7)
src/maasserver/websockets/handlers/tests/test_domain.py (+28/-28)
src/maasserver/websockets/handlers/tests/test_machine.py (+22/-22)
src/maasserver/websockets/handlers/tests/test_pod.py (+1/-1)
src/maasserver/websockets/handlers/tests/test_space.py (+3/-3)
src/maasserver/websockets/handlers/tests/test_subnet.py (+17/-17)
src/maasserver/websockets/handlers/tests/test_vlan.py (+17/-17)
src/maasserver/websockets/handlers/tests/test_zone.py (+3/-3)
src/maastesting/tests/test_fixtures.py (+13/-13)
src/maastesting/tests/test_matchers.py (+35/-35)
src/maastesting/tests/test_noseplug.py (+16/-16)
src/maastesting/tests/test_parallel.py (+13/-13)
src/metadataserver/builtin_scripts/tests/test_hooks.py (+93/-93)
src/metadataserver/builtin_scripts/tests/test_smartctl.py (+43/-43)
src/metadataserver/models/tests/test_scriptresult.py (+3/-3)
src/metadataserver/tests/test_api.py (+10/-10)
src/metadataserver/tests/test_api_twisted.py (+20/-20)
src/metadataserver/tests/test_vendor_data.py (+2/-2)
src/provisioningserver/boot/tests/test_windows.py (+3/-3)
src/provisioningserver/dhcp/tests/test_config.py (+25/-25)
src/provisioningserver/dhcp/tests/test_detect.py (+20/-20)
src/provisioningserver/dhcp/tests/test_omshell.py (+4/-4)
src/provisioningserver/dns/tests/test_actions.py (+12/-12)
src/provisioningserver/drivers/pod/tests/test_lxd.py (+9/-9)
src/provisioningserver/drivers/pod/tests/test_rsd.py (+31/-31)
src/provisioningserver/drivers/pod/tests/test_virsh.py (+5/-5)
src/provisioningserver/drivers/power/tests/test_amt.py (+17/-17)
src/provisioningserver/drivers/power/tests/test_dli.py (+6/-6)
src/provisioningserver/drivers/power/tests/test_ipmi.py (+13/-13)
src/provisioningserver/drivers/power/tests/test_lxd.py (+6/-6)
src/provisioningserver/drivers/power/tests/test_moonshot.py (+3/-3)
src/provisioningserver/drivers/power/tests/test_openbmc.py (+2/-2)
src/provisioningserver/drivers/power/tests/test_redfish.py (+5/-5)
src/provisioningserver/drivers/power/tests/test_seamicro.py (+5/-5)
src/provisioningserver/import_images/tests/test_boot_resources.py (+4/-4)
src/provisioningserver/import_images/tests/test_download_descriptions.py (+7/-7)
src/provisioningserver/logger/tests/test__tftp.py (+2/-2)
src/provisioningserver/logger/tests/test__twisted.py (+12/-12)
src/provisioningserver/logger/tests/test_logger.py (+8/-8)
src/provisioningserver/proxy/tests/test_config.py (+8/-8)
src/provisioningserver/rackdservices/tests/test_external.py (+12/-12)
src/provisioningserver/rackdservices/tests/test_http.py (+7/-7)
src/provisioningserver/rackdservices/tests/test_image_download_service.py (+3/-3)
src/provisioningserver/rackdservices/tests/test_service_monitor_service.py (+2/-2)
src/provisioningserver/rackdservices/tests/test_tftp.py (+7/-7)
src/provisioningserver/refresh/tests/test_maas_api_helper.py (+10/-10)
src/provisioningserver/rpc/tests/test_boot_images.py (+22/-22)
src/provisioningserver/rpc/tests/test_clusterservice.py (+53/-53)
src/provisioningserver/rpc/tests/test_common.py (+4/-4)
src/provisioningserver/rpc/tests/test_dhcp.py (+20/-20)
src/provisioningserver/rpc/tests/test_power.py (+7/-7)
src/provisioningserver/rpc/tests/test_tags.py (+3/-3)
src/provisioningserver/syslog/tests/test_config.py (+10/-10)
src/provisioningserver/tests/test_config.py (+2/-2)
src/provisioningserver/tests/test_events.py (+15/-15)
src/provisioningserver/tests/test_monkey.py (+6/-6)
src/provisioningserver/tests/test_path.py (+8/-8)
src/provisioningserver/tests/test_register_command.py (+12/-12)
src/provisioningserver/tests/test_security.py (+33/-33)
src/provisioningserver/tests/test_service_monitor.py (+1/-1)
src/provisioningserver/tests/test_tags.py (+1/-1)
src/provisioningserver/tests/test_upgrade_cluster.py (+19/-19)
src/provisioningserver/utils/tests/test_arp.py (+30/-30)
src/provisioningserver/utils/tests/test_avahi.py (+18/-18)
src/provisioningserver/utils/tests/test_beaconing.py (+31/-31)
src/provisioningserver/utils/tests/test_config.py (+5/-5)
src/provisioningserver/utils/tests/test_constraints.py (+16/-16)
src/provisioningserver/utils/tests/test_dhclient.py (+6/-6)
src/provisioningserver/utils/tests/test_dhcp.py (+7/-7)
src/provisioningserver/utils/tests/test_env.py (+6/-6)
src/provisioningserver/utils/tests/test_ethernet.py (+4/-4)
src/provisioningserver/utils/tests/test_fs.py (+34/-34)
src/provisioningserver/utils/tests/test_ipaddr.py (+15/-15)
src/provisioningserver/utils/tests/test_iproute.py (+2/-2)
src/provisioningserver/utils/tests/test_lxd.py (+1/-1)
src/provisioningserver/utils/tests/test_network.py (+138/-138)
src/provisioningserver/utils/tests/test_pcap.py (+8/-8)
src/provisioningserver/utils/tests/test_ps.py (+4/-4)
src/provisioningserver/utils/tests/test_registry.py (+3/-3)
src/provisioningserver/utils/tests/test_scan_network.py (+22/-22)
src/provisioningserver/utils/tests/test_send_beacons.py (+6/-6)
src/provisioningserver/utils/tests/test_service_monitor.py (+64/-64)
src/provisioningserver/utils/tests/test_services.py (+37/-37)
src/provisioningserver/utils/tests/test_shell.py (+21/-21)
src/provisioningserver/utils/tests/test_tcpip.py (+21/-21)
src/provisioningserver/utils/tests/test_text.py (+12/-12)
src/provisioningserver/utils/tests/test_tftp.py (+5/-5)
src/provisioningserver/utils/tests/test_twisted.py (+113/-113)
src/provisioningserver/utils/tests/test_url.py (+11/-11)
src/provisioningserver/utils/tests/test_utils.py (+21/-21)
src/provisioningserver/utils/tests/test_version.py (+26/-26)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
Review via email: mp+385277@code.launchpad.net

Commit message

Remove extra underscores from test method names
The normal convention in Python is to use test_ as a prefix to test
names. A number of tests in MAAS were prefixed with test__ or test___.
This change removes the superfluous underscores.

To post a comment you must log in.
Revision history for this message
Alberto Donato (ack) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maascli/tests/test_utils.py b/src/maascli/tests/test_utils.py
2index f764598..4840f8b 100644
3--- a/src/maascli/tests/test_utils.py
4+++ b/src/maascli/tests/test_utils.py
5@@ -217,7 +217,7 @@ class TestIsResponseTextual(MAASTestCase):
6 class TestPrintResponseHeaders(MAASTestCase):
7 """Tests for `print_response_headers`."""
8
9- def test__prints_http_headers_in_order(self):
10+ def test_prints_http_headers_in_order(self):
11 # print_response_headers() prints the given headers, in order, with
12 # each hyphen-delimited part of the header name capitalised, to the
13 # given file, with the names right aligned, and with a 2 space left
14@@ -236,7 +236,7 @@ class TestPrintResponseHeaders(MAASTestCase):
15 class TestPrintResponseContent(MAASTestCase):
16 """Tests for `print_response_content`."""
17
18- def test__prints_textual_response_with_newline(self):
19+ def test_prints_textual_response_with_newline(self):
20 # If the response content is textual and sys.stdout is connected to a
21 # TTY, print_response_content() prints the response with a trailing
22 # newline.
23@@ -252,7 +252,7 @@ class TestPrintResponseContent(MAASTestCase):
24 utils.print_response_content(response, response["content"], buf)
25 self.assertEqual(response["content"] + b"\n", buf.getvalue())
26
27- def test__prints_textual_response_when_redirected(self):
28+ def test_prints_textual_response_when_redirected(self):
29 # If the response content is textual and sys.stdout is not connected
30 # to a TTY, print_response_content() prints the response without a
31 # trailing newline.
32@@ -267,7 +267,7 @@ class TestPrintResponseContent(MAASTestCase):
33 utils.print_response_content(response, response["content"], buf)
34 self.assertEqual(response["content"], buf.getvalue())
35
36- def test__writes_binary_response(self):
37+ def test_writes_binary_response(self):
38 # Non-textual response content is written to the output stream
39 # using write(), so it carries no trailing newline, even if
40 # stdout is connected to a tty
41@@ -282,7 +282,7 @@ class TestPrintResponseContent(MAASTestCase):
42 utils.print_response_content(response, response["content"], buf)
43 self.assertEqual(response["content"], buf.getvalue())
44
45- def test__prints_textual_response_with_success_msg(self):
46+ def test_prints_textual_response_with_success_msg(self):
47 # When the response has a status code of 2XX, and the response body is
48 # textual print_response_content() will print a success message to the
49 # TTY.
50diff --git a/src/maasserver/api/tests/test_discoveries.py b/src/maasserver/api/tests/test_discoveries.py
51index 16176f2..a82fec7 100644
52--- a/src/maasserver/api/tests/test_discoveries.py
53+++ b/src/maasserver/api/tests/test_discoveries.py
54@@ -115,7 +115,7 @@ class TestDiscoveriesAPI(APITestCase.ForUser):
55 self.assertTrue(results[0]["last_seen"] >= results[1]["last_seen"])
56 self.assertTrue(results[1]["last_seen"] >= results[2]["last_seen"])
57
58- def test__by_unknown_mac(self):
59+ def test_by_unknown_mac(self):
60 rack = factory.make_RackController()
61 iface = factory.make_Interface(node=rack)
62 discovery = factory.make_Discovery(interface=iface)
63@@ -127,7 +127,7 @@ class TestDiscoveriesAPI(APITestCase.ForUser):
64 results = self.get_api_results({"op": "by_unknown_mac"})
65 self.assertThat(len(results), Equals(0))
66
67- def test__by_unknown_ip(self):
68+ def test_by_unknown_ip(self):
69 rack = factory.make_RackController()
70 iface = factory.make_Interface(node=rack)
71 discovery = factory.make_Discovery(interface=iface, ip="10.0.0.1")
72@@ -139,7 +139,7 @@ class TestDiscoveriesAPI(APITestCase.ForUser):
73 results = self.get_api_results({"op": "by_unknown_ip"})
74 self.assertThat(len(results), Equals(0))
75
76- def test__by_unknown_ip_and_mac__known_ip(self):
77+ def test_by_unknown_ip_and_mac__known_ip(self):
78 rack = factory.make_RackController()
79 iface = factory.make_Interface(node=rack)
80 discovery = factory.make_Discovery(interface=iface, ip="10.0.0.1")
81@@ -150,7 +150,7 @@ class TestDiscoveriesAPI(APITestCase.ForUser):
82 results = self.get_api_results({"op": "by_unknown_ip_and_mac"})
83 self.assertThat(len(results), Equals(0))
84
85- def test__by_unknown_ip_and_mac__known_mac(self):
86+ def test_by_unknown_ip_and_mac__known_mac(self):
87 rack = factory.make_RackController()
88 iface = factory.make_Interface(node=rack)
89 discovery = factory.make_Discovery(interface=iface)
90@@ -187,15 +187,15 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
91 result = {"result": factory.make_name()}
92 self.scan_all_rack_networks_mock.return_value = result
93
94- def test__scan__fails_scan_all_if_not_forced(self):
95+ def test_scan__fails_scan_all_if_not_forced(self):
96 response = self.post_api_response({"op": "scan"})
97 self.assertThat(response, HasStatusCode(http.client.BAD_REQUEST))
98
99- def test__scan__threads_must_be_number(self):
100+ def test_scan__threads_must_be_number(self):
101 response = self.post_api_response({"op": "scan", "threads": "x"})
102 self.assertThat(response, HasStatusCode(http.client.BAD_REQUEST))
103
104- def test__scan__calls_scan_all_networks_with_scan_all_if_forced(self):
105+ def test_scan__calls_scan_all_networks_with_scan_all_if_forced(self):
106 result = self.post_api_results({"op": "scan", "force": "true"})
107 self.assertThat(result, Equals(result))
108 self.assertThat(
109@@ -205,7 +205,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
110 ),
111 )
112
113- def test__scan__passes_ping(self):
114+ def test_scan__passes_ping(self):
115 result = self.post_api_results(
116 {"op": "scan", "force": "true", "always_use_ping": "true"}
117 )
118@@ -217,7 +217,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
119 ),
120 )
121
122- def test__scan__passes_slow(self):
123+ def test_scan__passes_slow(self):
124 result = self.post_api_results(
125 {"op": "scan", "force": "true", "slow": "true"}
126 )
127@@ -229,7 +229,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
128 ),
129 )
130
131- def test__scan__passes_threads(self):
132+ def test_scan__passes_threads(self):
133 result = self.post_api_results(
134 {"op": "scan", "force": "true", "threads": "3.14"}
135 )
136@@ -241,7 +241,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
137 ),
138 )
139
140- def test__scan__calls_scan_all_networks_with_specified_cidrs(self):
141+ def test_scan__calls_scan_all_networks_with_specified_cidrs(self):
142 result = self.post_api_results(
143 {
144 "op": "scan",
145@@ -263,17 +263,17 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
146 ),
147 )
148
149- def test__scan__with_invalid_cidrs_fails(self):
150+ def test_scan__with_invalid_cidrs_fails(self):
151 response = self.post_api_response(
152 {"op": "scan", "cidr": ["x.x.x.x/y"]}
153 )
154 self.assertThat(response, HasStatusCode(http.client.BAD_REQUEST))
155
156- def test__scan__with_no_cidrs_does_not_call_scan_all_networks(self):
157+ def test_scan__with_no_cidrs_does_not_call_scan_all_networks(self):
158 response = self.post_api_response({"op": "scan"})
159 self.assertThat(response, HasStatusCode(http.client.BAD_REQUEST))
160
161- def test__clear_not_allowed_for_non_admin(self):
162+ def test_clear_not_allowed_for_non_admin(self):
163 rack = factory.make_RackController()
164 iface = rack.interface_set.first()
165 make_discoveries(interface=iface, count=3)
166@@ -283,7 +283,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
167 http.client.FORBIDDEN, response.status_code, response.content
168 )
169
170- def test__clear_requires_parameters(self):
171+ def test_clear_requires_parameters(self):
172 self.become_admin()
173 rack = factory.make_RackController()
174 iface = rack.interface_set.first()
175@@ -294,7 +294,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
176 http.client.BAD_REQUEST, response.status_code, response.content
177 )
178
179- def test__clear_all_allowed_for_admin(self):
180+ def test_clear_all_allowed_for_admin(self):
181 self.become_admin()
182 rack = factory.make_RackController()
183 iface = rack.interface_set.first()
184@@ -303,7 +303,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
185 response = self.client.post(uri, {"op": "clear", "all": "true"})
186 self.assertEqual(204, response.status_code, response.content)
187
188- def test__clear_mdns_allowed_for_admin(self):
189+ def test_clear_mdns_allowed_for_admin(self):
190 self.become_admin()
191 rack = factory.make_RackController()
192 iface = rack.interface_set.first()
193@@ -312,7 +312,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
194 response = self.client.post(uri, {"op": "clear", "mdns": "true"})
195 self.assertEqual(204, response.status_code, response.content)
196
197- def test__clear_neighbours_allowed_for_admin(self):
198+ def test_clear_neighbours_allowed_for_admin(self):
199 self.become_admin()
200 rack = factory.make_RackController()
201 iface = rack.interface_set.first()
202@@ -323,7 +323,7 @@ class TestDiscoveriesScanAPI(APITestCase.ForUser):
203
204
205 class TestDiscoveriesClearByMACandIP(APITestCase.ForUser):
206- def test__clear_by_mac_and_ip_not_allowed_for_non_admin(self):
207+ def test_clear_by_mac_and_ip_not_allowed_for_non_admin(self):
208 rack = factory.make_RackController()
209 iface = rack.interface_set.first()
210 make_discoveries(interface=iface, count=3)
211@@ -340,7 +340,7 @@ class TestDiscoveriesClearByMACandIP(APITestCase.ForUser):
212 http.client.FORBIDDEN, response.status_code, response.content
213 )
214
215- def test__clear_by_mac_and_ip_requires_parameters(self):
216+ def test_clear_by_mac_and_ip_requires_parameters(self):
217 self.become_admin()
218 rack = factory.make_RackController()
219 iface = rack.interface_set.first()
220@@ -351,7 +351,7 @@ class TestDiscoveriesClearByMACandIP(APITestCase.ForUser):
221 http.client.BAD_REQUEST, response.status_code, response.content
222 )
223
224- def test__clear_by_mac_and_ip_allowed_for_admin(self):
225+ def test_clear_by_mac_and_ip_allowed_for_admin(self):
226 self.become_admin()
227 rack = factory.make_RackController()
228 iface = rack.interface_set.first()
229@@ -470,7 +470,7 @@ def make_RPCResults(
230
231
232 class TestInterpretsScanAllRackNetworksRPCResults(MAASTestCase):
233- def test__no_racks_available(self):
234+ def test_no_racks_available(self):
235 results = make_RPCResults(available=[], failed=[])
236 result = get_scan_result_string_for_humans(results)
237 self.assertThat(
238@@ -480,7 +480,7 @@ class TestInterpretsScanAllRackNetworksRPCResults(MAASTestCase):
239 ),
240 )
241
242- def test__scan_not_started_on_at_least_one_rack(self):
243+ def test_scan_not_started_on_at_least_one_rack(self):
244 results = make_RPCResults(
245 available=["x"], unavailable=["y", "z"], failed=[]
246 )
247@@ -490,12 +490,12 @@ class TestInterpretsScanAllRackNetworksRPCResults(MAASTestCase):
248 DocTestMatches("Scanning could not be started on 2 rack..."),
249 )
250
251- def test__scan_in_progress(self):
252+ def test_scan_in_progress(self):
253 results = make_RPCResults(available=["x"], unavailable=[], failed=[])
254 result = get_scan_result_string_for_humans(results)
255 self.assertThat(result, DocTestMatches("Scanning is in-progress..."))
256
257- def test__scan_failed_on_at_least_one_rack(self):
258+ def test_scan_failed_on_at_least_one_rack(self):
259 results = make_RPCResults(
260 available=["x"], failed=["v", "w"], unavailable=["y", "z"]
261 )
262@@ -508,7 +508,7 @@ class TestInterpretsScanAllRackNetworksRPCResults(MAASTestCase):
263 ),
264 )
265
266- def test__failed_rack(self):
267+ def test_failed_rack(self):
268 results = make_RPCResults(
269 available=["w"], failed=["w"], unavailable=[]
270 )
271@@ -550,7 +550,7 @@ class TestScanAllRackNetworksInterpretsRPCResults(MAASServerTestCase):
272 timeout=self.timed_out,
273 )
274
275- def test__populates_results_correctly(self):
276+ def test_populates_results_correctly(self):
277 result = user_friendly_scan_results(scan_all_rack_networks())
278 self.assertThat(
279 result,
280@@ -573,12 +573,12 @@ class TestScanAllRackNetworksInterpretsRPCResults(MAASServerTestCase):
281 ),
282 )
283
284- def test__results_can_be_converted_to_json_and_back(self):
285+ def test_results_can_be_converted_to_json_and_back(self):
286 result = user_friendly_scan_results(scan_all_rack_networks())
287 json_result = json.dumps(result)
288 self.assertThat(json.loads(json_result), Equals(result))
289
290- def test__calls_racks_synchronously(self):
291+ def test_calls_racks_synchronously(self):
292 scan_all_rack_networks()
293 self.assertThat(
294 self.call_racks_sync_mock,
295@@ -587,7 +587,7 @@ class TestScanAllRackNetworksInterpretsRPCResults(MAASServerTestCase):
296 ),
297 )
298
299- def test__calls_racks_synchronously_with_scan_all(self):
300+ def test_calls_racks_synchronously_with_scan_all(self):
301 scan_all_rack_networks(scan_all=True)
302 self.assertThat(
303 self.call_racks_sync_mock,
304@@ -598,7 +598,7 @@ class TestScanAllRackNetworksInterpretsRPCResults(MAASServerTestCase):
305 ),
306 )
307
308- def test__calls_racks_synchronously_with_cidrs(self):
309+ def test_calls_racks_synchronously_with_cidrs(self):
310 subnet_query = Subnet.objects.filter(
311 staticipaddress__interface__node__in=self.started
312 )
313@@ -617,7 +617,7 @@ class TestScanAllRackNetworksInterpretsRPCResults(MAASServerTestCase):
314 controllers = self.call_racks_sync_mock.call_args[1]["controllers"]
315 self.assertItemsEqual(self.started, controllers)
316
317- def test__calls_racks_synchronously_with_force_ping(self):
318+ def test_calls_racks_synchronously_with_force_ping(self):
319 scan_all_rack_networks(ping=True)
320 self.assertThat(
321 self.call_racks_sync_mock,
322@@ -628,7 +628,7 @@ class TestScanAllRackNetworksInterpretsRPCResults(MAASServerTestCase):
323 ),
324 )
325
326- def test__calls_racks_synchronously_with_threads(self):
327+ def test_calls_racks_synchronously_with_threads(self):
328 threads = random.randint(1, 99)
329 scan_all_rack_networks(threads=threads)
330 self.assertThat(
331@@ -640,7 +640,7 @@ class TestScanAllRackNetworksInterpretsRPCResults(MAASServerTestCase):
332 ),
333 )
334
335- def test__calls_racks_synchronously_with_slow(self):
336+ def test_calls_racks_synchronously_with_slow(self):
337 scan_all_rack_networks(slow=True)
338 self.assertThat(
339 self.call_racks_sync_mock,
340diff --git a/src/maasserver/api/tests/test_doc.py b/src/maasserver/api/tests/test_doc.py
341index 2b81cb7..8e5bca0 100644
342--- a/src/maasserver/api/tests/test_doc.py
343+++ b/src/maasserver/api/tests/test_doc.py
344@@ -436,11 +436,11 @@ class TestDescribingAPI(MAASTestCase):
345 class TestGeneratePowerTypesDoc(MAASTestCase):
346 """Tests for `generate_power_types_doc`."""
347
348- def test__generate_power_types_doc_generates_doc(self):
349+ def test_generate_power_types_doc_generates_doc(self):
350 doc = generate_power_types_doc()
351 self.assertThat(doc, ContainsAll(["Power types", "IPMI", "virsh"]))
352
353- def test__generate_power_types_doc_generates_describes_power_type(self):
354+ def test_generate_power_types_doc_generates_describes_power_type(self):
355 power_driver = random.choice(
356 [
357 driver
358@@ -465,11 +465,11 @@ class TestGeneratePowerTypesDoc(MAASTestCase):
359 class TestGeneratePodTypesDoc(MAASTestCase):
360 """Tests for `generate_pod_types_doc`."""
361
362- def test__generate_pod_types_doc_generates_doc(self):
363+ def test_generate_pod_types_doc_generates_doc(self):
364 doc = generate_pod_types_doc()
365 self.assertThat(doc, ContainsAll(["Pod types", "virsh"]))
366
367- def test__generate_pod_types_doc_generates_describes_types(self):
368+ def test_generate_pod_types_doc_generates_describes_types(self):
369 pod_driver = random.choice([driver for _, driver in PodDriverRegistry])
370 doc = generate_pod_types_doc()
371 self.assertThat(
372@@ -478,12 +478,12 @@ class TestGeneratePodTypesDoc(MAASTestCase):
373
374
375 class TestDescribeCanonical(MAASTestCase):
376- def test__passes_True_False_and_None_through(self):
377+ def test_passes_True_False_and_None_through(self):
378 self.expectThat(describe_canonical(True), Is(True))
379 self.expectThat(describe_canonical(False), Is(False))
380 self.expectThat(describe_canonical(None), Is(None))
381
382- def test__passes_numbers_through(self):
383+ def test_passes_numbers_through(self):
384 self.expectThat(
385 describe_canonical(1), MatchesAll(IsInstance(int), Equals(1))
386 )
387@@ -494,12 +494,12 @@ class TestDescribeCanonical(MAASTestCase):
388 describe_canonical(1.0), MatchesAll(IsInstance(float), Equals(1.0))
389 )
390
391- def test__passes_unicode_strings_through(self):
392+ def test_passes_unicode_strings_through(self):
393 string = factory.make_string()
394 self.assertThat(string, IsInstance(str))
395 self.expectThat(describe_canonical(string), Is(string))
396
397- def test__decodes_byte_strings(self):
398+ def test_decodes_byte_strings(self):
399 string = factory.make_string().encode("utf-8")
400 self.expectThat(
401 describe_canonical(string),
402@@ -510,32 +510,32 @@ class TestDescribeCanonical(MAASTestCase):
403 ),
404 )
405
406- def test__returns_sequences_as_tuples(self):
407+ def test_returns_sequences_as_tuples(self):
408 self.expectThat(describe_canonical([1, 2, 3]), Equals((1, 2, 3)))
409
410- def test__recursively_calls_sequence_elements(self):
411+ def test_recursively_calls_sequence_elements(self):
412 self.expectThat(describe_canonical([1, [2, 3]]), Equals((1, (2, 3))))
413
414- def test__sorts_sequences(self):
415+ def test_sorts_sequences(self):
416 self.expectThat(describe_canonical([3, 1, 2]), Equals((1, 2, 3)))
417 self.expectThat(
418 describe_canonical([[1, 2], [1, 1]]), Equals(((1, 1), (1, 2)))
419 )
420
421- def test__returns_mappings_as_tuples(self):
422+ def test_returns_mappings_as_tuples(self):
423 self.expectThat(describe_canonical({1: 2}), Equals(((1, 2),)))
424
425- def test__recursively_calls_mapping_keys_and_values(self):
426+ def test_recursively_calls_mapping_keys_and_values(self):
427 mapping = {"key\u1234".encode("utf-8"): ["b", "a", "r"]}
428 expected = (("key\u1234", ("a", "b", "r")),)
429 self.expectThat(describe_canonical(mapping), Equals(expected))
430
431- def test__sorts_mappings(self):
432+ def test_sorts_mappings(self):
433 self.expectThat(
434 describe_canonical({2: 1, 1: 1}), Equals(((1, 1), (2, 1)))
435 )
436
437- def test__sorts_mappings_by_key_and_value(self):
438+ def test_sorts_mappings_by_key_and_value(self):
439 class inth(int):
440 """An `int` that hashes independently from its value.
441
442@@ -560,20 +560,20 @@ class TestDescribeCanonical(MAASTestCase):
443 )
444 self.expectThat(describe_canonical(mapping), Equals(expected))
445
446- def test__rejects_other_types(self):
447+ def test_rejects_other_types(self):
448 self.assertRaises(TypeError, describe_canonical, lambda: None)
449
450
451 class TestHashCanonical(MAASTestCase):
452 """Tests for `hash_canonical`."""
453
454- def test__canonicalizes_argument(self):
455+ def test_canonicalizes_argument(self):
456 describe_canonical = self.patch(doc_module, "describe_canonical")
457 describe_canonical.return_value = ""
458 hash_canonical(sentinel.desc)
459 self.assertThat(describe_canonical, MockCalledOnceWith(sentinel.desc))
460
461- def test__returns_hash_object(self):
462+ def test_returns_hash_object(self):
463 hasher = hash_canonical(factory.make_string())
464 self.assertThat(
465 hasher,
466@@ -587,7 +587,7 @@ class TestHashCanonical(MAASTestCase):
467 ),
468 )
469
470- def test__misc_digests(self):
471+ def test_misc_digests(self):
472 def hexdigest(data):
473 return hash_canonical(data).hexdigest()
474
475@@ -634,7 +634,7 @@ class TestGetAPIDescriptionHash(MAASTestCase):
476 with doc_module.api_description_hash_lock:
477 doc_module.api_description_hash = None
478
479- def test__calculates_hash_from_api_description(self):
480+ def test_calculates_hash_from_api_description(self):
481 # Fake the API description.
482 api_description = factory.make_string()
483 api_description_hasher = hash_canonical(api_description)
484@@ -645,7 +645,7 @@ class TestGetAPIDescriptionHash(MAASTestCase):
485 Equals(api_description_hasher.hexdigest()),
486 )
487
488- def test__caches_hash(self):
489+ def test_caches_hash(self):
490 # Fake the API description.
491 api_description = factory.make_string()
492 api_description_hasher = hash_canonical(api_description)
493diff --git a/src/maasserver/api/tests/test_events.py b/src/maasserver/api/tests/test_events.py
494index 70a5e3c..af600ca 100644
495--- a/src/maasserver/api/tests/test_events.py
496+++ b/src/maasserver/api/tests/test_events.py
497@@ -73,7 +73,7 @@ def AfterBeingDecoded(matcher):
498 class TestEventToDict(APITestCase.ForUser):
499 """Test for `event_to_dict` function."""
500
501- def test__node_not_None(self):
502+ def test_node_not_None(self):
503 event = factory.make_Event()
504 self.assertThat(
505 event_to_dict(event),
506@@ -93,7 +93,7 @@ class TestEventToDict(APITestCase.ForUser):
507 ),
508 )
509
510- def test__node_and_user_is_None(self):
511+ def test_node_and_user_is_None(self):
512 user = factory.make_User()
513 node = factory.make_Node()
514 event = factory.make_Event(node=node, user=user)
515@@ -118,7 +118,7 @@ class TestEventToDict(APITestCase.ForUser):
516 ),
517 )
518
519- def test__type_level_AUDIT(self):
520+ def test_type_level_AUDIT(self):
521 event = factory.make_Event()
522 self.assertThat(
523 event_to_dict(event),
524diff --git a/src/maasserver/api/tests/test_machine.py b/src/maasserver/api/tests/test_machine.py
525index 7642950..d383c02 100644
526--- a/src/maasserver/api/tests/test_machine.py
527+++ b/src/maasserver/api/tests/test_machine.py
528@@ -2477,7 +2477,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
529 """Get the API URI for `machine`."""
530 return reverse("machine_handler", args=[machine.system_id])
531
532- def test__403_when_not_admin(self):
533+ def test_403_when_not_admin(self):
534 machine = factory.make_Node(status=NODE_STATUS.READY)
535 response = self.client.post(
536 self.get_machine_uri(machine), {"op": "set_storage_layout"}
537@@ -2486,7 +2486,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
538 http.client.FORBIDDEN, response.status_code, response.content
539 )
540
541- def test__409_when_machine_not_ready(self):
542+ def test_409_when_machine_not_ready(self):
543 self.become_admin()
544 machine = factory.make_Node(status=NODE_STATUS.ALLOCATED)
545 response = self.client.post(
546@@ -2496,7 +2496,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
547 http.client.CONFLICT, response.status_code, response.content
548 )
549
550- def test__400_when_storage_layout_missing(self):
551+ def test_400_when_storage_layout_missing(self):
552 self.become_admin()
553 machine = factory.make_Node(status=NODE_STATUS.READY)
554 response = self.client.post(
555@@ -2510,7 +2510,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
556 json_load_bytes(response.content),
557 )
558
559- def test__400_when_invalid_optional_param(self):
560+ def test_400_when_invalid_optional_param(self):
561 self.become_admin()
562 machine = factory.make_Node(status=NODE_STATUS.READY)
563 factory.make_PhysicalBlockDevice(node=machine)
564@@ -2535,7 +2535,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
565 json_load_bytes(response.content),
566 )
567
568- def test__400_when_no_boot_disk(self):
569+ def test_400_when_no_boot_disk(self):
570 self.become_admin()
571 machine = factory.make_Node(
572 status=NODE_STATUS.READY, with_boot_disk=False
573@@ -2553,7 +2553,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
574 response.content.decode(settings.DEFAULT_CHARSET),
575 )
576
577- def test__400_when_layout_error(self):
578+ def test_400_when_layout_error(self):
579 self.become_admin()
580 machine = factory.make_Node(status=NODE_STATUS.READY)
581 mock_set_storage_layout = self.patch(Machine, "set_storage_layout")
582@@ -2572,7 +2572,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
583 response.content.decode(settings.DEFAULT_CHARSET),
584 )
585
586- def test__400_when_layout_not_supported(self):
587+ def test_400_when_layout_not_supported(self):
588 self.become_admin()
589 machine = factory.make_Node(status=NODE_STATUS.READY)
590 factory.make_PhysicalBlockDevice(node=machine)
591@@ -2589,7 +2589,7 @@ class TestSetStorageLayout(APITestCase.ForUser):
592 response.content.decode(settings.DEFAULT_CHARSET),
593 )
594
595- def test__calls_set_storage_layout_on_machine(self):
596+ def test_calls_set_storage_layout_on_machine(self):
597 self.become_admin()
598 machine = factory.make_Node(status=NODE_STATUS.READY)
599 mock_set_storage_layout = self.patch(Machine, "set_storage_layout")
600@@ -2613,7 +2613,7 @@ class TestMountSpecial(APITestCase.ForUser):
601 """Get the API URI for `machine`."""
602 return reverse("machine_handler", args=[machine.system_id])
603
604- def test__fstype_and_mount_point_is_required_but_options_is_not(self):
605+ def test_fstype_and_mount_point_is_required_but_options_is_not(self):
606 machine = factory.make_Node(
607 status=NODE_STATUS.ALLOCATED, owner=self.user
608 )
609@@ -2631,7 +2631,7 @@ class TestMountSpecial(APITestCase.ForUser):
610 ),
611 )
612
613- def test__fstype_must_be_a_non_storage_type(self):
614+ def test_fstype_must_be_a_non_storage_type(self):
615 machine = factory.make_Node(
616 status=NODE_STATUS.ALLOCATED, owner=self.user
617 )
618@@ -2659,7 +2659,7 @@ class TestMountSpecial(APITestCase.ForUser):
619 "using fstype " + fstype,
620 )
621
622- def test__mount_point_must_be_absolute(self):
623+ def test_mount_point_must_be_absolute(self):
624 machine = factory.make_Node(
625 status=NODE_STATUS.ALLOCATED, owner=self.user
626 )
627@@ -2696,7 +2696,7 @@ class TestMountSpecialScenarios(APITestCase.ForUser):
628 """Get the API URI for `machine`."""
629 return reverse("machine_handler", args=[machine.system_id])
630
631- def test__machine_representation_includes_non_storage_filesystem(self):
632+ def test_machine_representation_includes_non_storage_filesystem(self):
633 self.become_admin()
634 machine = factory.make_Node(status=NODE_STATUS.READY)
635 filesystem = factory.make_Filesystem(node=machine, fstype=self.fstype)
636@@ -2729,7 +2729,7 @@ class TestMountSpecialScenarios(APITestCase.ForUser):
637 ),
638 )
639
640- def test__only_acquired_special_filesystems(self):
641+ def test_only_acquired_special_filesystems(self):
642 self.become_admin()
643 machine = factory.make_Node(status=NODE_STATUS.DEPLOYED)
644 factory.make_Filesystem(
645@@ -2767,7 +2767,7 @@ class TestMountSpecialScenarios(APITestCase.ForUser):
646 ),
647 )
648
649- def test__only_not_acquired_special_filesystems(self):
650+ def test_only_not_acquired_special_filesystems(self):
651 self.become_admin()
652 machine = factory.make_Node(status=NODE_STATUS.READY)
653 filesystem = factory.make_Filesystem(
654@@ -2834,12 +2834,12 @@ class TestMountSpecialScenarios(APITestCase.ForUser):
655 ),
656 )
657
658- def test__user_mounts_non_storage_filesystem_on_allocated_machine(self):
659+ def test_user_mounts_non_storage_filesystem_on_allocated_machine(self):
660 self.assertCanMountFilesystem(
661 factory.make_Node(status=NODE_STATUS.ALLOCATED, owner=self.user)
662 )
663
664- def test__conflict_to_mount_on_non_ready_allocated_machine(self):
665+ def test_conflict_to_mount_on_non_ready_allocated_machine(self):
666 statuses = {name for name, _ in NODE_STATUS_CHOICES}
667 statuses -= {NODE_STATUS.READY, NODE_STATUS.ALLOCATED}
668 for status in statuses:
669@@ -2859,19 +2859,19 @@ class TestMountSpecialScenarios(APITestCase.ForUser):
670 "using status %d" % status,
671 )
672
673- def test__admin_mounts_non_storage_filesystem_on_allocated_machine(self):
674+ def test_admin_mounts_non_storage_filesystem_on_allocated_machine(self):
675 self.become_admin()
676 self.assertCanMountFilesystem(
677 factory.make_Node(status=NODE_STATUS.ALLOCATED, owner=self.user)
678 )
679
680- def test__admin_mounts_non_storage_filesystem_on_ready_machine(self):
681+ def test_admin_mounts_non_storage_filesystem_on_ready_machine(self):
682 self.become_admin()
683 self.assertCanMountFilesystem(
684 factory.make_Node(status=NODE_STATUS.READY)
685 )
686
687- def test__admin_cannot_mount_on_non_ready_or_allocated_machine(self):
688+ def test_admin_cannot_mount_on_non_ready_or_allocated_machine(self):
689 self.become_admin()
690 statuses = {name for name, _ in NODE_STATUS_CHOICES}
691 statuses -= {NODE_STATUS.READY, NODE_STATUS.ALLOCATED}
692@@ -2900,7 +2900,7 @@ class TestUnmountSpecial(APITestCase.ForUser):
693 """Get the API URI for `machine`."""
694 return reverse("machine_handler", args=[machine.system_id])
695
696- def test__mount_point_is_required(self):
697+ def test_mount_point_is_required(self):
698 machine = factory.make_Node(
699 status=NODE_STATUS.ALLOCATED, owner=self.user
700 )
701@@ -2913,7 +2913,7 @@ class TestUnmountSpecial(APITestCase.ForUser):
702 Equals({"mount_point": ["This field is required."]}),
703 )
704
705- def test__mount_point_must_be_absolute(self):
706+ def test_mount_point_must_be_absolute(self):
707 machine = factory.make_Node(
708 status=NODE_STATUS.ALLOCATED, owner=self.user
709 )
710@@ -2964,12 +2964,12 @@ class TestUnmountSpecialScenarios(APITestCase.ForUser):
711 )
712 self.assertThat(Filesystem.objects.filter(node=machine), HasLength(0))
713
714- def test__user_unmounts_non_storage_filesystem_on_allocated_machine(self):
715+ def test_user_unmounts_non_storage_filesystem_on_allocated_machine(self):
716 self.assertCanUnmountFilesystem(
717 factory.make_Node(status=NODE_STATUS.ALLOCATED, owner=self.user)
718 )
719
720- def test__conflict_to_unmount_on_non_ready_allocated_machine(self):
721+ def test_conflict_to_unmount_on_non_ready_allocated_machine(self):
722 statuses = {name for name, _ in NODE_STATUS_CHOICES}
723 statuses -= {NODE_STATUS.READY, NODE_STATUS.ALLOCATED}
724 for status in statuses:
725@@ -2992,19 +2992,19 @@ class TestUnmountSpecialScenarios(APITestCase.ForUser):
726 "using status %d" % status,
727 )
728
729- def test__admin_unmounts_non_storage_filesystem_on_allocated_machine(self):
730+ def test_admin_unmounts_non_storage_filesystem_on_allocated_machine(self):
731 self.become_admin()
732 self.assertCanUnmountFilesystem(
733 factory.make_Node(status=NODE_STATUS.ALLOCATED, owner=self.user)
734 )
735
736- def test__admin_unmounts_non_storage_filesystem_on_ready_machine(self):
737+ def test_admin_unmounts_non_storage_filesystem_on_ready_machine(self):
738 self.become_admin()
739 self.assertCanUnmountFilesystem(
740 factory.make_Node(status=NODE_STATUS.READY)
741 )
742
743- def test__admin_cannot_unmount_on_non_ready_or_allocated_machine(self):
744+ def test_admin_cannot_unmount_on_non_ready_or_allocated_machine(self):
745 self.become_admin()
746 statuses = {name for name, _ in NODE_STATUS_CHOICES}
747 statuses -= {NODE_STATUS.READY, NODE_STATUS.ALLOCATED}
748@@ -3034,7 +3034,7 @@ class TestDefaultGateways(APITestCase.ForUser):
749 """Get the API URI for `machine`."""
750 return reverse("machine_handler", args=[machine.system_id])
751
752- def test__403_when_not_admin(self):
753+ def test_403_when_not_admin(self):
754 machine = factory.make_Node(
755 owner=self.user, status=NODE_STATUS.ALLOCATED
756 )
757@@ -3045,7 +3045,7 @@ class TestDefaultGateways(APITestCase.ForUser):
758 http.client.FORBIDDEN, response.status_code, response.content
759 )
760
761- def test__clears_default_gateways(self):
762+ def test_clears_default_gateways(self):
763 self.become_admin()
764 machine = factory.make_Node(
765 owner=self.user, status=NODE_STATUS.ALLOCATED
766@@ -3086,7 +3086,7 @@ class TestDefaultGateways(APITestCase.ForUser):
767 self.assertIsNone(machine.gateway_link_ipv4)
768 self.assertIsNone(machine.gateway_link_ipv6)
769
770- def test__returns_null_gateway_if_no_explicit_gateway_exists(self):
771+ def test_returns_null_gateway_if_no_explicit_gateway_exists(self):
772 machine = factory.make_Node(
773 owner=self.user, status=NODE_STATUS.ALLOCATED
774 )
775@@ -3128,7 +3128,7 @@ class TestDefaultGateways(APITestCase.ForUser):
776 ),
777 )
778
779- def test__returns_effective_gateway_if_no_explicit_gateway_set(self):
780+ def test_returns_effective_gateway_if_no_explicit_gateway_set(self):
781 machine = factory.make_Node(
782 owner=self.user, status=NODE_STATUS.ALLOCATED
783 )
784@@ -3176,7 +3176,7 @@ class TestDefaultGateways(APITestCase.ForUser):
785 ),
786 )
787
788- def test__returns_links_if_set(self):
789+ def test_returns_links_if_set(self):
790 machine = factory.make_Node(
791 owner=self.user, status=NODE_STATUS.ALLOCATED
792 )
793@@ -3233,7 +3233,7 @@ class TestGetCurtinConfig(APITestCase.ForUser):
794 """Get the API URI for `machine`."""
795 return reverse("machine_handler", args=[machine.system_id])
796
797- def test__500_when_machine_not_in_deployment_state(self):
798+ def test_500_when_machine_not_in_deployment_state(self):
799 machine = factory.make_Node(
800 owner=self.user,
801 status=factory.pick_enum(
802@@ -3252,7 +3252,7 @@ class TestGetCurtinConfig(APITestCase.ForUser):
803 http.client.BAD_REQUEST, response.status_code, response.content
804 )
805
806- def test__returns_curtin_config_in_yaml(self):
807+ def test_returns_curtin_config_in_yaml(self):
808 machine = factory.make_Node(
809 owner=self.user, status=NODE_STATUS.DEPLOYING
810 )
811diff --git a/src/maasserver/api/tests/test_machines.py b/src/maasserver/api/tests/test_machines.py
812index 9b2e78f..98c4485 100644
813--- a/src/maasserver/api/tests/test_machines.py
814+++ b/src/maasserver/api/tests/test_machines.py
815@@ -3539,7 +3539,7 @@ class TestPowerState(APITransactionTestCase.ForUser):
816 ) # Wait for all pending tasks to run.
817 self.assertThat(reload_object(machine).power_state, Equals(state))
818
819- def test__returns_actual_state(self):
820+ def test_returns_actual_state(self):
821 machine = factory.make_Node_with_Interface_on_Subnet(power_type="ipmi")
822 random_state = random.choice(["on", "off", "error"])
823 self.prepare_rpc(
824diff --git a/src/maasserver/api/tests/test_subnets.py b/src/maasserver/api/tests/test_subnets.py
825index ac33221..c1e8c6e 100644
826--- a/src/maasserver/api/tests/test_subnets.py
827+++ b/src/maasserver/api/tests/test_subnets.py
828@@ -413,7 +413,7 @@ class TestSubnetAPI(APITestCase.ForUser):
829 class TestSubnetAPIAuth(APITestCase.ForAnonymous):
830 """Authorization tests for subnet API."""
831
832- def test__reserved_ip_ranges_fails_if_not_logged_in(self):
833+ def test_reserved_ip_ranges_fails_if_not_logged_in(self):
834 subnet = factory.make_Subnet()
835 response = self.client.get(
836 get_subnet_uri(subnet), {"op": "reserved_ip_ranges"}
837@@ -424,7 +424,7 @@ class TestSubnetAPIAuth(APITestCase.ForAnonymous):
838 explain_unexpected_response(http.client.UNAUTHORIZED, response),
839 )
840
841- def test__unreserved_ip_ranges_fails_if_not_logged_in(self):
842+ def test_unreserved_ip_ranges_fails_if_not_logged_in(self):
843 subnet = factory.make_Subnet()
844 response = self.client.get(
845 get_subnet_uri(subnet), {"op": "unreserved_ip_ranges"}
846@@ -437,7 +437,7 @@ class TestSubnetAPIAuth(APITestCase.ForAnonymous):
847
848
849 class TestSubnetReservedIPRangesAPI(APITestCase.ForUser):
850- def test__returns_empty_list_for_empty_ipv4_subnet(self):
851+ def test_returns_empty_list_for_empty_ipv4_subnet(self):
852 subnet = factory.make_Subnet(version=4, dns_servers=[], gateway_ip="")
853 response = self.client.get(
854 get_subnet_uri(subnet), {"op": "reserved_ip_ranges"}
855@@ -450,7 +450,7 @@ class TestSubnetReservedIPRangesAPI(APITestCase.ForUser):
856 result = json.loads(response.content.decode(settings.DEFAULT_CHARSET))
857 self.assertThat(result, Equals([]))
858
859- def test__returns_reserved_anycast_for_empty_ipv6_subnet(self):
860+ def test_returns_reserved_anycast_for_empty_ipv6_subnet(self):
861 subnet = factory.make_Subnet(version=6, dns_servers=[], gateway_ip="")
862 response = self.client.get(
863 get_subnet_uri(subnet), {"op": "reserved_ip_ranges"}
864@@ -465,7 +465,7 @@ class TestSubnetReservedIPRangesAPI(APITestCase.ForUser):
865 self.assertThat(result[0]["num_addresses"], Equals(1))
866 self.assertThat(result[0]["purpose"], Contains("rfc-4291-2.6.1"))
867
868- def test__accounts_for_reserved_ip_address(self):
869+ def test_accounts_for_reserved_ip_address(self):
870 subnet = factory.make_Subnet(dns_servers=[], gateway_ip="")
871 ip = factory.pick_ip_in_network(subnet.get_ipnetwork())
872 factory.make_StaticIPAddress(
873@@ -494,7 +494,7 @@ class TestSubnetReservedIPRangesAPI(APITestCase.ForUser):
874
875
876 class TestSubnetUnreservedIPRangesAPI(APITestCase.ForUser):
877- def test__returns_full_list_for_empty_subnet(self):
878+ def test_returns_full_list_for_empty_subnet(self):
879 subnet = factory.make_Subnet(
880 cidr=factory.make_ipv4_network(), dns_servers=[], gateway_ip=""
881 )
882@@ -548,7 +548,7 @@ class TestSubnetUnreservedIPRangesAPI(APITestCase.ForUser):
883 )
884 self.assertThat(result, Equals([]), str(subnet.get_ipranges_in_use()))
885
886- def test__returns_empty_list_for_full_ipv4_subnet(self):
887+ def test_returns_empty_list_for_full_ipv4_subnet(self):
888 network = factory.make_ipv4_network()
889 subnet = factory.make_Subnet(cidr=str(network.cidr), dns_servers=[])
890 network = subnet.get_ipnetwork()
891@@ -556,7 +556,7 @@ class TestSubnetUnreservedIPRangesAPI(APITestCase.ForUser):
892 last_address = inet_ntop(network.last - 1) # Skip broadcast.
893 self._unreserved_ip_ranges_empty(subnet, first_address, last_address)
894
895- def test__returns_empty_list_for_full_ipv6_subnet(self):
896+ def test_returns_empty_list_for_full_ipv6_subnet(self):
897 network = factory.make_ipv6_network(slash=random.randint(112, 119))
898 subnet = factory.make_Subnet(cidr=str(network.cidr), dns_servers=[])
899 network = subnet.get_ipnetwork()
900@@ -565,7 +565,7 @@ class TestSubnetUnreservedIPRangesAPI(APITestCase.ForUser):
901 self._unreserved_ip_ranges_empty(subnet, first_address, last_address)
902
903 # Slash-64 ipv6 subnets get a special range put in them - test separately.
904- def test__returns_empty_list_for_full_ipv6_slash_64_subnet(self):
905+ def test_returns_empty_list_for_full_ipv6_slash_64_subnet(self):
906 network = factory.make_ipv6_network(slash=64)
907 subnet = factory.make_Subnet(cidr=str(network.cidr), dns_servers=[])
908 network = subnet.get_ipnetwork()
909@@ -575,7 +575,7 @@ class TestSubnetUnreservedIPRangesAPI(APITestCase.ForUser):
910 last_address = inet_ntop(network.last)
911 self._unreserved_ip_ranges_empty(subnet, first_address, last_address)
912
913- def test__accounts_for_reserved_ip_address(self):
914+ def test_accounts_for_reserved_ip_address(self):
915 subnet = factory.make_ipv4_Subnet_with_IPRanges(
916 with_dynamic_range=False, dns_servers=[], with_router=False
917 )
918@@ -635,7 +635,7 @@ class TestSubnetUnreservedIPRangesAPI(APITestCase.ForUser):
919
920
921 class TestSubnetStatisticsAPI(APITestCase.ForUser):
922- def test__default_does_not_include_ranges(self):
923+ def test_default_does_not_include_ranges(self):
924 subnet = factory.make_Subnet()
925 factory.make_StaticIPAddress(
926 alloc_type=IPADDRESS_TYPE.USER_RESERVED, subnet=subnet
927@@ -654,7 +654,7 @@ class TestSubnetStatisticsAPI(APITestCase.ForUser):
928 expected_result = statistics.render_json(include_ranges=False)
929 self.assertThat(result, Equals(expected_result))
930
931- def test__with_include_ranges(self):
932+ def test_with_include_ranges(self):
933 subnet = factory.make_Subnet()
934 factory.make_StaticIPAddress(
935 alloc_type=IPADDRESS_TYPE.USER_RESERVED, subnet=subnet
936@@ -674,7 +674,7 @@ class TestSubnetStatisticsAPI(APITestCase.ForUser):
937 expected_result = statistics.render_json(include_ranges=True)
938 self.assertThat(result, Equals(expected_result))
939
940- def test__without_include_ranges(self):
941+ def test_without_include_ranges(self):
942 subnet = factory.make_Subnet()
943 factory.make_StaticIPAddress(
944 alloc_type=IPADDRESS_TYPE.USER_RESERVED, subnet=subnet
945@@ -696,7 +696,7 @@ class TestSubnetStatisticsAPI(APITestCase.ForUser):
946
947
948 class TestSubnetIPAddressesAPI(APITestCase.ForUser):
949- def test__default_parameters(self):
950+ def test_default_parameters(self):
951 subnet = factory.make_Subnet()
952 user = factory.make_User()
953 node = factory.make_Node_with_Interface_on_Subnet(
954@@ -725,7 +725,7 @@ class TestSubnetIPAddressesAPI(APITestCase.ForUser):
955 )
956 self.assertThat(result, Equals(expected_result))
957
958- def test__with_username_false(self):
959+ def test_with_username_false(self):
960 subnet = factory.make_Subnet()
961 user = factory.make_User()
962 node = factory.make_Node_with_Interface_on_Subnet(
963@@ -755,7 +755,7 @@ class TestSubnetIPAddressesAPI(APITestCase.ForUser):
964 )
965 self.assertThat(result, Equals(expected_result))
966
967- def test__with_summary_false(self):
968+ def test_with_summary_false(self):
969 subnet = factory.make_Subnet()
970 user = factory.make_User()
971 node = factory.make_Node_with_Interface_on_Subnet(
972@@ -785,7 +785,7 @@ class TestSubnetIPAddressesAPI(APITestCase.ForUser):
973 )
974 self.assertThat(result, Equals(expected_result))
975
976- def test__with_deprecated_node_summary_false(self):
977+ def test_with_deprecated_node_summary_false(self):
978 subnet = factory.make_Subnet()
979 user = factory.make_User()
980 node = factory.make_Node_with_Interface_on_Subnet(
981diff --git a/src/maasserver/api/tests/test_support.py b/src/maasserver/api/tests/test_support.py
982index 0a75bc3..8f323b6 100644
983--- a/src/maasserver/api/tests/test_support.py
984+++ b/src/maasserver/api/tests/test_support.py
985@@ -176,7 +176,7 @@ class TestOperationsHandlerMixin(MAASTestCase):
986 def make_handler(self, **namespace):
987 return type("TestHandler", (OperationsHandlerMixin,), namespace)
988
989- def test__decorate_decorates_exports(self):
990+ def test_decorate_decorates_exports(self):
991 handler = self.make_handler(
992 exports={"foo": sentinel.foo, "bar": sentinel.bar}
993 )
994@@ -185,7 +185,7 @@ class TestOperationsHandlerMixin(MAASTestCase):
995 {"foo": "SENTINEL.FOO", "bar": "SENTINEL.BAR"}, handler.exports
996 )
997
998- def test__decorate_decorates_anonymous_exports(self):
999+ def test_decorate_decorates_anonymous_exports(self):
1000 handler = self.make_handler(exports={"foo": sentinel.foo})
1001 handler.anonymous = self.make_handler(exports={"bar": sentinel.bar})
1002 handler.decorate(lambda thing: str(thing).upper())
1003diff --git a/src/maasserver/api/tests/test_users.py b/src/maasserver/api/tests/test_users.py
1004index 30aa805..2ecb002 100644
1005--- a/src/maasserver/api/tests/test_users.py
1006+++ b/src/maasserver/api/tests/test_users.py
1007@@ -253,7 +253,7 @@ class TestUsers(APITestCase.ForUser):
1008 ContainsAll([user.username for user in users]),
1009 )
1010
1011- def test__whoami_returns_user(self):
1012+ def test_whoami_returns_user(self):
1013 factory.make_User()
1014 response = self.client.get(reverse("users_handler"), {"op": "whoami"})
1015 self.assertEqual(
1016@@ -262,7 +262,7 @@ class TestUsers(APITestCase.ForUser):
1017 result = json.loads(response.content.decode(settings.DEFAULT_CHARSET))
1018 self.assertThat(result["username"], Equals(self.user.username))
1019
1020- def test__whoami_returns_forbidden_if_not_logged_in(self):
1021+ def test_whoami_returns_forbidden_if_not_logged_in(self):
1022 self.client.logout()
1023 factory.make_User()
1024 response = self.client.get(reverse("users_handler"), {"op": "whoami"})
1025diff --git a/src/maasserver/clusterrpc/tests/test_boot_images.py b/src/maasserver/clusterrpc/tests/test_boot_images.py
1026index 09d4493..f557025 100644
1027--- a/src/maasserver/clusterrpc/tests/test_boot_images.py
1028+++ b/src/maasserver/clusterrpc/tests/test_boot_images.py
1029@@ -408,7 +408,7 @@ class TestGetBootImagesFor(MAASTransactionServerTestCase):
1030 class TestRackControllersImporter(MAASServerTestCase):
1031 """Tests for `RackControllersImporter`."""
1032
1033- def test__init_with_single_system_id(self):
1034+ def test_init_with_single_system_id(self):
1035 system_id = factory.make_name("system_id")
1036 sources = [sentinel.source]
1037 proxy = factory.make_simple_http_url()
1038@@ -424,7 +424,7 @@ class TestRackControllersImporter(MAASServerTestCase):
1039 ),
1040 )
1041
1042- def test__init_with_multiple_ssytem_ids(self):
1043+ def test_init_with_multiple_ssytem_ids(self):
1044 system_ids = [factory.make_name("system_id") for _ in range(3)]
1045 sources = [sentinel.source]
1046 proxy = factory.make_simple_http_url()
1047@@ -440,20 +440,20 @@ class TestRackControllersImporter(MAASServerTestCase):
1048 ),
1049 )
1050
1051- def test__init_also_accepts_already_parsed_proxy(self):
1052+ def test_init_also_accepts_already_parsed_proxy(self):
1053 proxy = urlparse(factory.make_simple_http_url())
1054 importer = RackControllersImporter(
1055 sentinel.system_id, [sentinel.source], proxy
1056 )
1057 self.assertThat(importer, MatchesStructure(proxy=Is(proxy)))
1058
1059- def test__init_also_accepts_no_proxy(self):
1060+ def test_init_also_accepts_no_proxy(self):
1061 importer = RackControllersImporter(
1062 sentinel.system_id, [sentinel.source]
1063 )
1064 self.assertThat(importer, MatchesStructure(proxy=Is(None)))
1065
1066- def test__schedule_arranges_for_later_run(self):
1067+ def test_schedule_arranges_for_later_run(self):
1068 # Avoid deferring to the database.
1069 self.patch(boot_images_module, "deferToDatabase", maybeDeferred)
1070 # Avoid actually initiating a run.
1071@@ -495,7 +495,7 @@ class TestRackControllersImporter(MAASServerTestCase):
1072 ),
1073 )
1074
1075- def test__run_will_not_error_instead_it_logs(self):
1076+ def test_run_will_not_error_instead_it_logs(self):
1077 call = self.patch(RackControllersImporter, "__call__")
1078 call.return_value = fail(ZeroDivisionError())
1079
1080@@ -516,11 +516,11 @@ class TestRackControllersImporter(MAASServerTestCase):
1081 class TestRackControllersImporterNew(MAASServerTestCase):
1082 """Tests for the `RackControllersImporter.new` function."""
1083
1084- def test__new_obtains_system_ids_if_not_given(self):
1085+ def test_new_obtains_system_ids_if_not_given(self):
1086 importer = RackControllersImporter.new(sources=[], proxy=None)
1087 self.assertThat(importer, MatchesStructure(system_ids=Equals(())))
1088
1089- def test__new_obtains_system_ids_for_accepted_clusters_if_not_given(self):
1090+ def test_new_obtains_system_ids_for_accepted_clusters_if_not_given(self):
1091 rack = factory.make_RackController()
1092
1093 importer = RackControllersImporter.new(sources=[], proxy=None)
1094@@ -529,14 +529,14 @@ class TestRackControllersImporterNew(MAASServerTestCase):
1095 importer, MatchesStructure(system_ids=Equals((rack.system_id,)))
1096 )
1097
1098- def test__new_obtains_sources_if_not_given(self):
1099+ def test_new_obtains_sources_if_not_given(self):
1100 importer = RackControllersImporter.new(system_ids=[], proxy=None)
1101 self.assertThat(
1102 importer,
1103 MatchesStructure(sources=Equals([get_simplestream_endpoint()])),
1104 )
1105
1106- def test__new_obtains_proxy_if_not_given(self):
1107+ def test_new_obtains_proxy_if_not_given(self):
1108 # Disable boot source cache signals.
1109 self.addCleanup(bootsources.signals.enable)
1110 bootsources.signals.disable()
1111@@ -548,7 +548,7 @@ class TestRackControllersImporterNew(MAASServerTestCase):
1112 importer, MatchesStructure(proxy=Equals(urlparse(proxy)))
1113 )
1114
1115- def test__new_obtains_None_proxy_if_disabled(self):
1116+ def test_new_obtains_None_proxy_if_disabled(self):
1117 # Disable boot source cache signals.
1118 self.addCleanup(bootsources.signals.enable)
1119 bootsources.signals.disable()
1120@@ -572,7 +572,7 @@ class TestRackControllersImporterInAction(MAASTransactionServerTestCase):
1121 # This fixture allows us to simulate mock clusters.
1122 self.rpc = self.useFixture(MockLiveRegionToClusterRPCFixture())
1123
1124- def test__calling_importer_issues_rpc_calls_to_clusters(self):
1125+ def test_calling_importer_issues_rpc_calls_to_clusters(self):
1126 # Some clusters that we'll ask to import resources.
1127 rack_1 = factory.make_RackController()
1128 rack_2 = factory.make_RackController()
1129@@ -610,7 +610,7 @@ class TestRackControllersImporterInAction(MAASTransactionServerTestCase):
1130 ),
1131 )
1132
1133- def test__run_calls_importer_and_reports_results(self):
1134+ def test_run_calls_importer_and_reports_results(self):
1135 # Some clusters that we'll ask to import resources.
1136 rack_1 = factory.make_RackController()
1137 rack_2 = factory.make_RackController()
1138diff --git a/src/maasserver/clusterrpc/tests/test_driver_parameters.py b/src/maasserver/clusterrpc/tests/test_driver_parameters.py
1139index 5f1c73a..6e31cad 100644
1140--- a/src/maasserver/clusterrpc/tests/test_driver_parameters.py
1141+++ b/src/maasserver/clusterrpc/tests/test_driver_parameters.py
1142@@ -87,7 +87,7 @@ class TestGetPowerTypeParametersFromJSON(MAASServerTestCase):
1143 for name, field in power_type_parameters.items():
1144 self.assertIsInstance(field, DictCharField)
1145
1146- def test__overrides_defaults(self):
1147+ def test_overrides_defaults(self):
1148 name = factory.make_name("name")
1149 field_name = factory.make_name("field_name")
1150 new_default = factory.make_name("new default")
1151@@ -114,7 +114,7 @@ class TestGetPowerTypeParametersFromJSON(MAASServerTestCase):
1152 new_default, power_type_parameters[name].fields[0].initial
1153 )
1154
1155- def test__manual_does_not_require_power_params(self):
1156+ def test_manual_does_not_require_power_params(self):
1157 json_parameters = [
1158 {
1159 "driver_type": "power",
1160@@ -140,7 +140,7 @@ class TestGetPowerTypeParametersFromJSON(MAASServerTestCase):
1161 class TestMakeFormField(MAASServerTestCase):
1162 """Test that make_form_field() converts JSON fields to Django."""
1163
1164- def test__creates_char_field_for_strings(self):
1165+ def test_creates_char_field_for_strings(self):
1166 json_field = {
1167 "name": "some_field",
1168 "label": "Some Field",
1169@@ -150,7 +150,7 @@ class TestMakeFormField(MAASServerTestCase):
1170 django_field = make_form_field(json_field)
1171 self.assertIsInstance(django_field, forms.CharField)
1172
1173- def test__creates_string_field_for_passwords(self):
1174+ def test_creates_string_field_for_passwords(self):
1175 json_field = {
1176 "name": "some_field",
1177 "label": "Some Field",
1178@@ -160,7 +160,7 @@ class TestMakeFormField(MAASServerTestCase):
1179 django_field = make_form_field(json_field)
1180 self.assertIsInstance(django_field, forms.CharField)
1181
1182- def test__creates_choice_field_for_choices(self):
1183+ def test_creates_choice_field_for_choices(self):
1184 json_field = {
1185 "name": "some_field",
1186 "label": "Some Field",
1187@@ -183,7 +183,7 @@ class TestMakeFormField(MAASServerTestCase):
1188 )
1189 self.assertEqual(json_field["default"], django_field.initial)
1190
1191- def test__creates_mac_address_field_for_mac_addresses(self):
1192+ def test_creates_mac_address_field_for_mac_addresses(self):
1193 json_field = {
1194 "name": "some_field",
1195 "label": "Some Field",
1196@@ -193,7 +193,7 @@ class TestMakeFormField(MAASServerTestCase):
1197 django_field = make_form_field(json_field)
1198 self.assertIsInstance(django_field, MACAddressFormField)
1199
1200- def test__sets_properties_on_form_field(self):
1201+ def test_sets_properties_on_form_field(self):
1202 json_field = {
1203 "name": "some_field",
1204 "label": "Some Field",
1205@@ -206,7 +206,7 @@ class TestMakeFormField(MAASServerTestCase):
1206 (django_field.label, django_field.required),
1207 )
1208
1209- def test__sets_initial_to_default(self):
1210+ def test_sets_initial_to_default(self):
1211 json_field = {
1212 "name": "some_field",
1213 "label": "Some Field",
1214@@ -221,11 +221,11 @@ class TestMakeFormField(MAASServerTestCase):
1215 class TestMakeSettingField(MAASServerTestCase):
1216 """Test that make_setting_field() creates JSON-verifiable fields."""
1217
1218- def test__returns_json_verifiable_dict(self):
1219+ def test_returns_json_verifiable_dict(self):
1220 json_field = make_setting_field("some_field", "Some Label")
1221 jsonschema.validate(json_field, SETTING_PARAMETER_FIELD_SCHEMA)
1222
1223- def test__provides_sane_default_values(self):
1224+ def test_provides_sane_default_values(self):
1225 json_field = make_setting_field("some_field", "Some Label")
1226 expected_field = {
1227 "name": "some_field",
1228@@ -238,7 +238,7 @@ class TestMakeSettingField(MAASServerTestCase):
1229 }
1230 self.assertEqual(expected_field, json_field)
1231
1232- def test__sets_field_values(self):
1233+ def test_sets_field_values(self):
1234 expected_field = {
1235 "name": "yet_another_field",
1236 "label": "Can I stop writing tests now?",
1237@@ -251,7 +251,7 @@ class TestMakeSettingField(MAASServerTestCase):
1238 json_field = make_setting_field(**expected_field)
1239 self.assertEqual(expected_field, json_field)
1240
1241- def test__validates_choices(self):
1242+ def test_validates_choices(self):
1243 self.assertRaises(
1244 jsonschema.ValidationError,
1245 make_setting_field,
1246@@ -260,7 +260,7 @@ class TestMakeSettingField(MAASServerTestCase):
1247 choices="Nonsense",
1248 )
1249
1250- def test__creates_password_fields(self):
1251+ def test_creates_password_fields(self):
1252 json_field = make_setting_field(
1253 "some_field", "Some Label", field_type="password"
1254 )
1255diff --git a/src/maasserver/clusterrpc/tests/test_pods.py b/src/maasserver/clusterrpc/tests/test_pods.py
1256index 3c8ecbe..3d43d7b 100644
1257--- a/src/maasserver/clusterrpc/tests/test_pods.py
1258+++ b/src/maasserver/clusterrpc/tests/test_pods.py
1259@@ -52,7 +52,7 @@ class TestDiscoverPod(MAASTransactionServerTestCase):
1260
1261 @wait_for_reactor
1262 @inlineCallbacks
1263- def test__calls_DiscoverPod_on_all_clients(self):
1264+ def test_calls_DiscoverPod_on_all_clients(self):
1265 rack_ids = [factory.make_name("system_id") for _ in range(3)]
1266 pod = DiscoveredPod(
1267 architectures=["amd64/generic"],
1268@@ -82,7 +82,7 @@ class TestDiscoverPod(MAASTransactionServerTestCase):
1269
1270 @wait_for_reactor
1271 @inlineCallbacks
1272- def test__returns_discovered_pod_and_errors(self):
1273+ def test_returns_discovered_pod_and_errors(self):
1274 pod_type = factory.make_name("pod")
1275 pod = DiscoveredPod(
1276 architectures=["amd64/generic"],
1277@@ -120,7 +120,7 @@ class TestDiscoverPod(MAASTransactionServerTestCase):
1278
1279 @wait_for_reactor
1280 @inlineCallbacks
1281- def test__handles_timeout(self):
1282+ def test_handles_timeout(self):
1283 def defer_way_later(*args, **kwargs):
1284 # Create a defer that will finish in 1 minute.
1285 return deferLater(reactor, 60 * 60, lambda: None)
1286@@ -215,7 +215,7 @@ class TestGetBestDiscoveredResult(MAASTestCase):
1287 class TestSendPodCommissioningResults(MAASServerTestCase):
1288 """Tests for `send_pod_commissioning_results`."""
1289
1290- def test__calls_and_returns_correctly(self):
1291+ def test_calls_and_returns_correctly(self):
1292 pod = factory.make_Pod()
1293 node = factory.make_Node()
1294 token = NodeKey.objects.get_token_for_node(node)
1295@@ -252,7 +252,7 @@ class TestSendPodCommissioningResults(MAASServerTestCase):
1296 ),
1297 )
1298
1299- def test__raises_PodProblem_for_UnknownPodType(self):
1300+ def test_raises_PodProblem_for_UnknownPodType(self):
1301 pod = factory.make_Pod()
1302 node = factory.make_Node()
1303 token = NodeKey.objects.get_token_for_node(node)
1304@@ -280,7 +280,7 @@ class TestSendPodCommissioningResults(MAASServerTestCase):
1305 str(error),
1306 )
1307
1308- def test__raises_PodProblem_for_NotImplementedError(self):
1309+ def test_raises_PodProblem_for_NotImplementedError(self):
1310 pod = factory.make_Pod()
1311 node = factory.make_Node()
1312 token = NodeKey.objects.get_token_for_node(node)
1313@@ -309,7 +309,7 @@ class TestSendPodCommissioningResults(MAASServerTestCase):
1314 str(error),
1315 )
1316
1317- def test__raises_PodProblem_for_PodActionFail(self):
1318+ def test_raises_PodProblem_for_PodActionFail(self):
1319 pod = factory.make_Pod()
1320 node = factory.make_Node()
1321 token = NodeKey.objects.get_token_for_node(node)
1322@@ -338,7 +338,7 @@ class TestSendPodCommissioningResults(MAASServerTestCase):
1323 str(error),
1324 )
1325
1326- def test__raises_same_exception(self):
1327+ def test_raises_same_exception(self):
1328 pod = factory.make_Pod()
1329 node = factory.make_Node()
1330 token = NodeKey.objects.get_token_for_node(node)
1331@@ -368,7 +368,7 @@ class TestSendPodCommissioningResults(MAASServerTestCase):
1332 class TestComposeMachine(MAASServerTestCase):
1333 """Tests for `compose_machine`."""
1334
1335- def test__calls_and_returns_correctly(self):
1336+ def test_calls_and_returns_correctly(self):
1337 pod = factory.make_Pod()
1338 client = Mock()
1339 client.return_value = succeed(
1340@@ -398,7 +398,7 @@ class TestComposeMachine(MAASServerTestCase):
1341 self.assertEqual(sentinel.machine, machine)
1342 self.assertEqual(sentinel.hints, hints)
1343
1344- def test__raises_PodProblem_for_UnknownPodType(self):
1345+ def test_raises_PodProblem_for_UnknownPodType(self):
1346 pod = factory.make_Pod()
1347 client = Mock()
1348 client.return_value = fail(UnknownPodType(pod.power_type))
1349@@ -419,7 +419,7 @@ class TestComposeMachine(MAASServerTestCase):
1350 str(error),
1351 )
1352
1353- def test__raises_PodProblem_for_NotImplementedError(self):
1354+ def test_raises_PodProblem_for_NotImplementedError(self):
1355 pod = factory.make_Pod()
1356 client = Mock()
1357 client.return_value = fail(NotImplementedError())
1358@@ -440,7 +440,7 @@ class TestComposeMachine(MAASServerTestCase):
1359 str(error),
1360 )
1361
1362- def test__raises_PodProblem_for_PodActionFail(self):
1363+ def test_raises_PodProblem_for_PodActionFail(self):
1364 pod = factory.make_Pod()
1365 error_msg = factory.make_name("error")
1366 client = Mock()
1367@@ -460,7 +460,7 @@ class TestComposeMachine(MAASServerTestCase):
1368 "Unable to compose machine because: %s" % error_msg, str(error)
1369 )
1370
1371- def test__raises_same_exception(self):
1372+ def test_raises_same_exception(self):
1373 pod = factory.make_Pod()
1374 client = Mock()
1375 exception_type = factory.make_exception_type()
1376@@ -483,7 +483,7 @@ class TestComposeMachine(MAASServerTestCase):
1377 class TestDecomposeMachine(MAASServerTestCase):
1378 """Tests for `decompose_machine`."""
1379
1380- def test__calls_and_returns_correctly(self):
1381+ def test_calls_and_returns_correctly(self):
1382 hints = DiscoveredPodHints(
1383 cores=random.randint(1, 8),
1384 cpu_speed=random.randint(1000, 2000),
1385@@ -510,7 +510,7 @@ class TestDecomposeMachine(MAASServerTestCase):
1386 )
1387 self.assertEqual(hints, result)
1388
1389- def test__raises_PodProblem_for_UnknownPodType(self):
1390+ def test_raises_PodProblem_for_UnknownPodType(self):
1391 pod = factory.make_Pod()
1392 client = Mock()
1393 client.return_value = fail(UnknownPodType(pod.power_type))
1394@@ -530,7 +530,7 @@ class TestDecomposeMachine(MAASServerTestCase):
1395 str(error),
1396 )
1397
1398- def test__raises_PodProblem_for_NotImplementedError(self):
1399+ def test_raises_PodProblem_for_NotImplementedError(self):
1400 pod = factory.make_Pod()
1401 client = Mock()
1402 client.return_value = fail(NotImplementedError())
1403@@ -550,7 +550,7 @@ class TestDecomposeMachine(MAASServerTestCase):
1404 str(error),
1405 )
1406
1407- def test__raises_PodProblem_for_PodActionFail(self):
1408+ def test_raises_PodProblem_for_PodActionFail(self):
1409 pod = factory.make_Pod()
1410 error_msg = factory.make_name("error")
1411 client = Mock()
1412@@ -569,7 +569,7 @@ class TestDecomposeMachine(MAASServerTestCase):
1413 "Unable to decompose machine because: %s" % error_msg, str(error)
1414 )
1415
1416- def test__raises_same_exception(self):
1417+ def test_raises_same_exception(self):
1418 pod = factory.make_Pod()
1419 client = Mock()
1420 exception_type = factory.make_exception_type()
1421diff --git a/src/maasserver/clusterrpc/tests/test_power.py b/src/maasserver/clusterrpc/tests/test_power.py
1422index 5af7672..e125974 100644
1423--- a/src/maasserver/clusterrpc/tests/test_power.py
1424+++ b/src/maasserver/clusterrpc/tests/test_power.py
1425@@ -54,7 +54,7 @@ class TestPowerNode(MAASServerTestCase):
1426 ("PowerOff", {"power_func": power_off_node, "command": PowerOff}),
1427 )
1428
1429- def test__powers_single_node(self):
1430+ def test_powers_single_node(self):
1431 node = factory.make_Node()
1432 client = Mock()
1433
1434@@ -77,7 +77,7 @@ class TestPowerNode(MAASServerTestCase):
1435 ),
1436 )
1437
1438- def test__raises_power_problem(self):
1439+ def test_raises_power_problem(self):
1440 node = factory.make_Node()
1441 client = Mock()
1442 client.return_value = fail(
1443@@ -96,7 +96,7 @@ class TestPowerNode(MAASServerTestCase):
1444 class TestPowerCycle(MAASServerTestCase):
1445 """Tests for `power_cycle`."""
1446
1447- def test__power_cycles_single_node(self):
1448+ def test_power_cycles_single_node(self):
1449 node = factory.make_Node()
1450 client = Mock()
1451
1452@@ -119,7 +119,7 @@ class TestPowerCycle(MAASServerTestCase):
1453 ),
1454 )
1455
1456- def test__raises_power_problem(self):
1457+ def test_raises_power_problem(self):
1458 node = factory.make_Node()
1459 client = Mock()
1460 client.return_value = fail(
1461@@ -138,7 +138,7 @@ class TestPowerCycle(MAASServerTestCase):
1462 class TestPowerQuery(MAASServerTestCase):
1463 """Tests for `power_query`."""
1464
1465- def test__power_querys_single_node(self):
1466+ def test_power_querys_single_node(self):
1467 node = factory.make_Node()
1468 client = Mock()
1469
1470@@ -165,7 +165,7 @@ class TestPowerQuery(MAASServerTestCase):
1471 class TestPowerDriverCheck(MAASServerTestCase):
1472 """Tests for `power_driver_check`."""
1473
1474- def test__handled(self):
1475+ def test_handled(self):
1476 node = factory.make_Node()
1477 power_info = node.get_effective_power_info()
1478 client = Mock()
1479@@ -191,7 +191,7 @@ class TestPowerQueryAll(MAASTransactionServerTestCase):
1480
1481 @wait_for_reactor
1482 @inlineCallbacks
1483- def test__calls_PowerQuery_on_all_clients(self):
1484+ def test_calls_PowerQuery_on_all_clients(self):
1485 node, power_info = yield deferToDatabase(
1486 self.make_node_with_power_info
1487 )
1488@@ -232,7 +232,7 @@ class TestPowerQueryAll(MAASTransactionServerTestCase):
1489
1490 @wait_for_reactor
1491 @inlineCallbacks
1492- def test__handles_timeout(self):
1493+ def test_handles_timeout(self):
1494 node, power_info = yield deferToDatabase(
1495 self.make_node_with_power_info
1496 )
1497diff --git a/src/maasserver/clusterrpc/tests/test_utils.py b/src/maasserver/clusterrpc/tests/test_utils.py
1498index 6769287..9fad892 100644
1499--- a/src/maasserver/clusterrpc/tests/test_utils.py
1500+++ b/src/maasserver/clusterrpc/tests/test_utils.py
1501@@ -42,7 +42,7 @@ class MockFailure(Failure):
1502 class TestCallClusters(MAASServerTestCase):
1503 """Tests for `utils.call_clusters`."""
1504
1505- def test__gets_clients(self):
1506+ def test_gets_clients(self):
1507 rack = factory.make_RackController()
1508 getClientFor = self.patch(utils, "getClientFor")
1509 getClientFor.return_value = lambda: None
1510@@ -55,7 +55,7 @@ class TestCallClusters(MAASServerTestCase):
1511 self.assertItemsEqual([], utils.call_clusters(sentinel.command))
1512 self.assertThat(getClientFor, MockCalledOnceWith(rack.system_id))
1513
1514- def test__with_successful_callbacks(self):
1515+ def test_with_successful_callbacks(self):
1516 rack = factory.make_RackController()
1517 getClientFor = self.patch(utils, "getClientFor")
1518 getClientFor.return_value = lambda: None
1519@@ -87,7 +87,7 @@ class TestCallClusters(MAASServerTestCase):
1520 self.assertThat(failed_callback, MockNotCalled())
1521 self.assertThat(timeout_callback, MockNotCalled())
1522
1523- def test__with_unavailable_callbacks(self):
1524+ def test_with_unavailable_callbacks(self):
1525 logger = self.useFixture(FakeLogger("maasserver"))
1526 rack = factory.make_RackController()
1527 getClientFor = self.patch(utils, "getClientFor")
1528@@ -121,7 +121,7 @@ class TestCallClusters(MAASServerTestCase):
1529 logger.output, DocTestMatches("...Unable to get RPC connection...")
1530 )
1531
1532- def test__with_failed_callbacks(self):
1533+ def test_with_failed_callbacks(self):
1534 logger = self.useFixture(FakeLogger("maasserver"))
1535 rack = factory.make_RackController()
1536 getClientFor = self.patch(utils, "getClientFor")
1537@@ -160,7 +160,7 @@ class TestCallClusters(MAASServerTestCase):
1538 ),
1539 )
1540
1541- def test__with_timeout_callbacks(self):
1542+ def test_with_timeout_callbacks(self):
1543 logger = self.useFixture(FakeLogger("maasserver"))
1544 rack = factory.make_RackController()
1545 getClientFor = self.patch(utils, "getClientFor")
1546@@ -198,7 +198,7 @@ class TestCallClusters(MAASServerTestCase):
1547 class TestCallRacksSynchronously(MAASServerTestCase):
1548 """Tests for `utils.call_rakcks_synchronously`."""
1549
1550- def test__gets_clients(self):
1551+ def test_gets_clients(self):
1552 rack = factory.make_RackController()
1553 getClientFor = self.patch(utils, "getClientFor")
1554 getClientFor.return_value = lambda: None
1555diff --git a/src/maasserver/dns/tests/test_config.py b/src/maasserver/dns/tests/test_config.py
1556index 3b5fc4f..3d955c7 100644
1557--- a/src/maasserver/dns/tests/test_config.py
1558+++ b/src/maasserver/dns/tests/test_config.py
1559@@ -464,15 +464,15 @@ class TestIPv6DNS(TestDNSServer):
1560 class TestGetUpstreamDNS(MAASServerTestCase):
1561 """Test for maasserver/dns/config.py:get_upstream_dns()"""
1562
1563- def test__returns_empty_list_if_not_set(self):
1564+ def test_returns_empty_list_if_not_set(self):
1565 self.assertEqual([], get_upstream_dns())
1566
1567- def test__returns_list_of_one_address_if_set(self):
1568+ def test_returns_list_of_one_address_if_set(self):
1569 address = factory.make_ip_address()
1570 Config.objects.set_config("upstream_dns", address)
1571 self.assertEqual([address], get_upstream_dns())
1572
1573- def test__returns_list_if_space_separated_ips(self):
1574+ def test_returns_list_if_space_separated_ips(self):
1575 addresses = [factory.make_ip_address() for _ in range(3)]
1576 Config.objects.set_config("upstream_dns", " ".join(addresses))
1577 self.assertEqual(addresses, get_upstream_dns())
1578@@ -485,16 +485,16 @@ class TestGetTrustedAcls(MAASServerTestCase):
1579 super(TestGetTrustedAcls, self).setUp()
1580 self.useFixture(RegionConfigurationFixture())
1581
1582- def test__returns_empty_string_if_no_networks(self):
1583+ def test_returns_empty_string_if_no_networks(self):
1584 self.assertEqual([], get_trusted_acls())
1585
1586- def test__returns_single_network(self):
1587+ def test_returns_single_network(self):
1588 subnet = factory.make_ipv6_network()
1589 Config.objects.set_config("dns_trusted_acl", str(subnet))
1590 expected = [str(subnet)]
1591 self.assertEqual(expected, get_trusted_acls())
1592
1593- def test__returns_many_networks(self):
1594+ def test_returns_many_networks(self):
1595 subnets = [
1596 str(factory.make_ipv4_network())
1597 for _ in range(random.randint(1, 5))
1598@@ -514,21 +514,21 @@ class TestGetTrustedNetworks(MAASServerTestCase):
1599 super(TestGetTrustedNetworks, self).setUp()
1600 self.useFixture(RegionConfigurationFixture())
1601
1602- def test__returns_empty_string_if_no_networks(self):
1603+ def test_returns_empty_string_if_no_networks(self):
1604 self.assertEqual([], get_trusted_networks())
1605
1606- def test__returns_single_network(self):
1607+ def test_returns_single_network(self):
1608 subnet = factory.make_Subnet()
1609 expected = [str(subnet.cidr)]
1610 self.assertEqual(expected, get_trusted_networks())
1611
1612- def test__returns_no_networks_if_not_allow_dns(self):
1613+ def test_returns_no_networks_if_not_allow_dns(self):
1614 factory.make_Subnet(allow_dns=False)
1615 subnet_allowed = factory.make_Subnet(allow_dns=True)
1616 expected = [str(subnet_allowed.cidr)]
1617 self.assertEqual(expected, get_trusted_networks())
1618
1619- def test__returns_many_networks(self):
1620+ def test_returns_many_networks(self):
1621 subnets = [factory.make_Subnet() for _ in range(random.randint(1, 5))]
1622 expected = [str(subnet.cidr) for subnet in subnets]
1623 # Note: This test was seen randomly failing because the networks were
1624@@ -539,13 +539,13 @@ class TestGetTrustedNetworks(MAASServerTestCase):
1625 class TestGetInternalDomain(MAASServerTestCase):
1626 """Test for maasserver/dns/config.py:get_internal_domain()"""
1627
1628- def test__uses_maas_internal_domain_config(self):
1629+ def test_uses_maas_internal_domain_config(self):
1630 internal_domain = factory.make_name("internal")
1631 Config.objects.set_config("maas_internal_domain", internal_domain)
1632 domain = get_internal_domain()
1633 self.assertEqual(internal_domain, domain.name)
1634
1635- def test__doesnt_add_disconnected_rack(self):
1636+ def test_doesnt_add_disconnected_rack(self):
1637 rack = factory.make_RackController()
1638 # No `RegionRackRPCConnection` is being created so the rack is
1639 # disconnected.
1640@@ -561,7 +561,7 @@ class TestGetInternalDomain(MAASServerTestCase):
1641 domain = get_internal_domain()
1642 self.assertEqual(0, len(domain.resources))
1643
1644- def test__adds_connected_rack_ipv4(self):
1645+ def test_adds_connected_rack_ipv4(self):
1646 rack = factory.make_RackController()
1647 factory.make_RegionRackRPCConnection(rack)
1648 nic = rack.get_boot_interface()
1649@@ -582,7 +582,7 @@ class TestGetInternalDomain(MAASServerTestCase):
1650 domain.resources[0].records[0],
1651 )
1652
1653- def test__adds_connected_rack_ipv6(self):
1654+ def test_adds_connected_rack_ipv6(self):
1655 rack = factory.make_RackController()
1656 factory.make_RegionRackRPCConnection(rack)
1657 nic = rack.get_boot_interface()
1658@@ -603,7 +603,7 @@ class TestGetInternalDomain(MAASServerTestCase):
1659 domain.resources[0].records[0],
1660 )
1661
1662- def test__adds_connected_multiple_racks_ipv4(self):
1663+ def test_adds_connected_multiple_racks_ipv4(self):
1664 rack1 = factory.make_RackController()
1665 factory.make_RegionRackRPCConnection(rack1)
1666 rack2 = factory.make_RackController()
1667@@ -642,7 +642,7 @@ class TestGetInternalDomain(MAASServerTestCase):
1668 ),
1669 )
1670
1671- def test__adds_connected_multiple_racks_ipv6(self):
1672+ def test_adds_connected_multiple_racks_ipv6(self):
1673 rack1 = factory.make_RackController()
1674 factory.make_RegionRackRPCConnection(rack1)
1675 rack2 = factory.make_RackController()
1676@@ -681,7 +681,7 @@ class TestGetInternalDomain(MAASServerTestCase):
1677 ),
1678 )
1679
1680- def test__prefers_static_ip_over_dhcp(self):
1681+ def test_prefers_static_ip_over_dhcp(self):
1682 rack = factory.make_RackController()
1683 factory.make_RegionRackRPCConnection(rack)
1684 nic = rack.get_boot_interface()
1685@@ -725,6 +725,6 @@ class TestGetResourceNameForSubnet(MAASServerTestCase):
1686 ),
1687 )
1688
1689- def test__returns_valid(self):
1690+ def test_returns_valid(self):
1691 subnet = factory.make_Subnet(cidr=self.cidr)
1692 self.assertEqual(self.result, get_resource_name_for_subnet(subnet))
1693diff --git a/src/maasserver/dns/tests/test_zonegenerator.py b/src/maasserver/dns/tests/test_zonegenerator.py
1694index 5655873..f47f7d1 100644
1695--- a/src/maasserver/dns/tests/test_zonegenerator.py
1696+++ b/src/maasserver/dns/tests/test_zonegenerator.py
1697@@ -168,7 +168,7 @@ class TestGetDNSServerAddresses(MAASServerTestCase):
1698
1699
1700 class TestGetDNSSearchPaths(MAASServerTestCase):
1701- def test__returns_all_authoritative_domains(self):
1702+ def test_returns_all_authoritative_domains(self):
1703 domain_names = get_dns_search_paths()
1704 domain_names.update(
1705 factory.make_Domain(authoritative=True).name for _ in range(3)
1706diff --git a/src/maasserver/forms/tests/test_clone.py b/src/maasserver/forms/tests/test_clone.py
1707index 72cc26d..4d65d40 100644
1708--- a/src/maasserver/forms/tests/test_clone.py
1709+++ b/src/maasserver/forms/tests/test_clone.py
1710@@ -14,7 +14,7 @@ from maasserver.testing.testcase import MAASServerTestCase
1711
1712
1713 class TestCloneForm(MAASServerTestCase):
1714- def test__empty_errors(self):
1715+ def test_empty_errors(self):
1716 user = factory.make_admin()
1717 form = CloneForm(user, data={})
1718 self.assertFalse(form.is_valid())
1719@@ -27,7 +27,7 @@ class TestCloneForm(MAASServerTestCase):
1720 form.errors,
1721 )
1722
1723- def test__source_destination_match_error(self):
1724+ def test_source_destination_match_error(self):
1725 user = factory.make_admin()
1726 source = factory.make_Machine(
1727 status=random.choice(
1728@@ -53,7 +53,7 @@ class TestCloneForm(MAASServerTestCase):
1729 form.errors,
1730 )
1731
1732- def test__source_destination_smaller_storage(self):
1733+ def test_source_destination_smaller_storage(self):
1734 user = factory.make_admin()
1735 source = factory.make_Machine(with_boot_disk=False)
1736 factory.make_PhysicalBlockDevice(
1737@@ -88,7 +88,7 @@ class TestCloneForm(MAASServerTestCase):
1738 form.errors,
1739 )
1740
1741- def test__source_destination_missing_nic(self):
1742+ def test_source_destination_missing_nic(self):
1743 user = factory.make_admin()
1744 source = factory.make_Machine(with_boot_disk=False)
1745 factory.make_Interface(node=source, name="eth0")
1746@@ -119,7 +119,7 @@ class TestCloneForm(MAASServerTestCase):
1747 form.errors,
1748 )
1749
1750- def test__permission_errors(self):
1751+ def test_permission_errors(self):
1752 user = factory.make_User()
1753 source = factory.make_Machine(with_boot_disk=False)
1754 factory.make_PhysicalBlockDevice(
1755@@ -157,7 +157,7 @@ class TestCloneForm(MAASServerTestCase):
1756 form.errors,
1757 )
1758
1759- def test__performs_clone(self):
1760+ def test_performs_clone(self):
1761 user = factory.make_admin()
1762 source = factory.make_Machine(with_boot_disk=False)
1763 factory.make_PhysicalBlockDevice(
1764diff --git a/src/maasserver/forms/tests/test_controller.py b/src/maasserver/forms/tests/test_controller.py
1765index 6300d60..1b892bf 100644
1766--- a/src/maasserver/forms/tests/test_controller.py
1767+++ b/src/maasserver/forms/tests/test_controller.py
1768@@ -26,19 +26,19 @@ class TestControllerForm(MAASServerTestCase):
1769 list(form.fields),
1770 )
1771
1772- def test___populates_power_type_choices(self):
1773+ def test_populates_power_type_choices(self):
1774 form = ControllerForm()
1775 self.assertEqual(
1776 [""] + [choice[0] for choice in get_driver_choices()],
1777 [choice[0] for choice in form.fields["power_type"].choices],
1778 )
1779
1780- def test___populates_power_type_initial(self):
1781+ def test_populates_power_type_initial(self):
1782 rack = factory.make_RackController()
1783 form = ControllerForm(instance=rack)
1784 self.assertEqual(rack.power_type, form.fields["power_type"].initial)
1785
1786- def test__sets_power_type(self):
1787+ def test_sets_power_type(self):
1788 rack = factory.make_RackController()
1789 power_type = factory.pick_power_type()
1790 form = ControllerForm(
1791@@ -51,7 +51,7 @@ class TestControllerForm(MAASServerTestCase):
1792 rack = form.save()
1793 self.assertEqual(power_type, rack.power_type)
1794
1795- def test__sets_power_parameters(self):
1796+ def test_sets_power_parameters(self):
1797 rack = factory.make_RackController()
1798 power_parameters_field = factory.make_string()
1799 form = ControllerForm(
1800@@ -66,7 +66,7 @@ class TestControllerForm(MAASServerTestCase):
1801 power_parameters_field, rack.power_parameters["field"]
1802 )
1803
1804- def test__sets_zone(self):
1805+ def test_sets_zone(self):
1806 rack = factory.make_RackController()
1807 zone = factory.make_zone()
1808 form = ControllerForm(
1809@@ -76,7 +76,7 @@ class TestControllerForm(MAASServerTestCase):
1810 rack = form.save()
1811 self.assertEqual(zone.name, rack.zone.name)
1812
1813- def test__sets_domain(self):
1814+ def test_sets_domain(self):
1815 rack = factory.make_RackController()
1816 domain = factory.make_Domain()
1817 form = ControllerForm(
1818diff --git a/src/maasserver/forms/tests/test_dhcpsnippet.py b/src/maasserver/forms/tests/test_dhcpsnippet.py
1819index 07082ca..62408ed 100644
1820--- a/src/maasserver/forms/tests/test_dhcpsnippet.py
1821+++ b/src/maasserver/forms/tests/test_dhcpsnippet.py
1822@@ -24,17 +24,17 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1823 super().setUp()
1824 self.patch(dhcpsnippet, "validate_dhcp_config").return_value = {}
1825
1826- def test__create_dhcp_snippet_requies_name(self):
1827+ def test_create_dhcp_snippet_requies_name(self):
1828 form = DHCPSnippetForm(data={"value": factory.make_string()})
1829 self.assertFalse(form.is_valid())
1830 self.assertItemsEqual([], VersionedTextFile.objects.all())
1831
1832- def test__create_dhcp_snippet_requires_value(self):
1833+ def test_create_dhcp_snippet_requires_value(self):
1834 form = DHCPSnippetForm(data={"name": factory.make_name("name")})
1835 self.assertFalse(form.is_valid())
1836 self.assertItemsEqual([], VersionedTextFile.objects.all())
1837
1838- def test__creates_dhcp_snippet(self):
1839+ def test_creates_dhcp_snippet(self):
1840 name = factory.make_name("name")
1841 value = factory.make_string()
1842 description = factory.make_string()
1843@@ -62,7 +62,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1844 event.description, "Created DHCP snippet '%s'." % dhcp_snippet.name
1845 )
1846
1847- def test__create_dhcp_snippet_defaults_to_enabled(self):
1848+ def test_create_dhcp_snippet_defaults_to_enabled(self):
1849 name = factory.make_name("name")
1850 value = factory.make_string()
1851 description = factory.make_string()
1852@@ -79,7 +79,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1853 self.assertEqual(description, dhcp_snippet.description)
1854 self.assertTrue(dhcp_snippet.enabled)
1855
1856- def test__creates_dhcp_snippet_with_node(self):
1857+ def test_creates_dhcp_snippet_with_node(self):
1858 node = factory.make_Node()
1859 name = factory.make_name("name")
1860 value = factory.make_string()
1861@@ -104,7 +104,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1862 self.assertEqual(enabled, dhcp_snippet.enabled)
1863 self.assertEqual(node, dhcp_snippet.node)
1864
1865- def test__creates_dhcp_snippet_with_subnet(self):
1866+ def test_creates_dhcp_snippet_with_subnet(self):
1867 subnet = factory.make_Subnet()
1868 name = factory.make_name("name")
1869 value = factory.make_string()
1870@@ -130,7 +130,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1871 self.assertEqual(enabled, dhcp_snippet.enabled)
1872 self.assertEqual(subnet, dhcp_snippet.subnet)
1873
1874- def test__cannt_create_dhcp_snippet_with_node_and_subnet(self):
1875+ def test_cannt_create_dhcp_snippet_with_node_and_subnet(self):
1876 node = factory.make_Node()
1877 subnet = factory.make_Subnet()
1878 name = factory.make_name("name")
1879@@ -149,7 +149,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1880 )
1881 self.assertFalse(form.is_valid())
1882
1883- def test__fail_validation_on_create_cleans_value(self):
1884+ def test_fail_validation_on_create_cleans_value(self):
1885 node = factory.make_Node()
1886 subnet = factory.make_Subnet()
1887 name = factory.make_name("name")
1888@@ -170,7 +170,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1889 self.assertItemsEqual([], DHCPSnippet.objects.all())
1890 self.assertItemsEqual([], VersionedTextFile.objects.all())
1891
1892- def test__updates_name(self):
1893+ def test_updates_name(self):
1894 dhcp_snippet = factory.make_DHCPSnippet()
1895 name = factory.make_name("name")
1896 form = DHCPSnippetForm(instance=dhcp_snippet, data={"name": name})
1897@@ -186,7 +186,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1898 event.description, "Updated DHCP snippet '%s'." % dhcp_snippet.name
1899 )
1900
1901- def test__updates_value(self):
1902+ def test_updates_value(self):
1903 dhcp_snippet = factory.make_DHCPSnippet()
1904 old_value = dhcp_snippet.value.data
1905 new_value = factory.make_string()
1906@@ -201,7 +201,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1907 self.assertEqual(new_value, dhcp_snippet.value.data)
1908 self.assertEqual(old_value, dhcp_snippet.value.previous_version.data)
1909
1910- def test__updates_description(self):
1911+ def test_updates_description(self):
1912 dhcp_snippet = factory.make_DHCPSnippet()
1913 description = factory.make_string()
1914 form = DHCPSnippetForm(
1915@@ -214,7 +214,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1916 dhcp_snippet = form.save(endpoint, request)
1917 self.assertEqual(description, dhcp_snippet.description)
1918
1919- def test__updates_enabled(self):
1920+ def test_updates_enabled(self):
1921 dhcp_snippet = factory.make_DHCPSnippet()
1922 enabled = not dhcp_snippet.enabled
1923 form = DHCPSnippetForm(
1924@@ -227,7 +227,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1925 dhcp_snippet = form.save(endpoint, request)
1926 self.assertEqual(enabled, dhcp_snippet.enabled)
1927
1928- def test__updates_node(self):
1929+ def test_updates_node(self):
1930 dhcp_snippet = factory.make_DHCPSnippet()
1931 node = factory.make_Node()
1932 form = DHCPSnippetForm(
1933@@ -240,7 +240,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1934 dhcp_snippet = form.save(endpoint, request)
1935 self.assertEqual(node, dhcp_snippet.node)
1936
1937- def test__updates_node_when_subnet_set(self):
1938+ def test_updates_node_when_subnet_set(self):
1939 dhcp_snippet = factory.make_DHCPSnippet(subnet=factory.make_Subnet())
1940 node = factory.make_Node()
1941 form = DHCPSnippetForm(
1942@@ -254,7 +254,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1943 self.assertIsNone(dhcp_snippet.subnet)
1944 self.assertEquals(node, dhcp_snippet.node)
1945
1946- def test__updates_subnet(self):
1947+ def test_updates_subnet(self):
1948 dhcp_snippet = factory.make_DHCPSnippet()
1949 subnet = factory.make_Subnet()
1950 form = DHCPSnippetForm(
1951@@ -267,7 +267,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1952 dhcp_snippet = form.save(endpoint, request)
1953 self.assertEqual(subnet, dhcp_snippet.subnet)
1954
1955- def test__updates_subnet_when_node_set(self):
1956+ def test_updates_subnet_when_node_set(self):
1957 dhcp_snippet = factory.make_DHCPSnippet(node=factory.make_Node())
1958 subnet = factory.make_Subnet()
1959 form = DHCPSnippetForm(
1960@@ -281,7 +281,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1961 self.assertIsNone(dhcp_snippet.node)
1962 self.assertEquals(subnet, dhcp_snippet.subnet)
1963
1964- def test__cannot_update_both_node_and_subnet(self):
1965+ def test_cannot_update_both_node_and_subnet(self):
1966 dhcp_snippet = factory.make_DHCPSnippet()
1967 form = DHCPSnippetForm(
1968 instance=dhcp_snippet,
1969@@ -292,7 +292,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1970 )
1971 self.assertFalse(form.is_valid())
1972
1973- def test__update_failure_doesnt_delete_value(self):
1974+ def test_update_failure_doesnt_delete_value(self):
1975 dhcp_snippet = factory.make_DHCPSnippet()
1976 value = dhcp_snippet.value.data
1977 form = DHCPSnippetForm(
1978@@ -305,7 +305,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1979 self.assertFalse(form.is_valid())
1980 self.assertEquals(value, reload_object(dhcp_snippet).value.data)
1981
1982- def test__update_global_snippet_resets_node(self):
1983+ def test_update_global_snippet_resets_node(self):
1984 node = factory.make_Node()
1985 dhcp_snippet = factory.make_DHCPSnippet(node=node)
1986 form = DHCPSnippetForm(
1987@@ -318,7 +318,7 @@ class TestDHCPSnippetForm(MAASServerTestCase):
1988 dhcp_snippet = form.save(endpoint, request)
1989 self.assertIsNone(dhcp_snippet.node)
1990
1991- def test__update_global_snippet_resets_subnet(self):
1992+ def test_update_global_snippet_resets_subnet(self):
1993 subnet = factory.make_Subnet()
1994 dhcp_snippet = factory.make_DHCPSnippet(subnet=subnet)
1995 form = DHCPSnippetForm(
1996diff --git a/src/maasserver/forms/tests/test_dnsdata.py b/src/maasserver/forms/tests/test_dnsdata.py
1997index 8b7d553..71c838e 100644
1998--- a/src/maasserver/forms/tests/test_dnsdata.py
1999+++ b/src/maasserver/forms/tests/test_dnsdata.py
2000@@ -14,7 +14,7 @@ from maasserver.utils.orm import reload_object
2001
2002
2003 class TestDNSDataForm(MAASServerTestCase):
2004- def test__creates_dnsdata(self):
2005+ def test_creates_dnsdata(self):
2006 name = factory.make_name("dnsdata")
2007 (rrtype, rrdata) = factory.pick_rrset()
2008 dnsrr = factory.make_DNSResource(no_ip_addresses=True)
2009@@ -77,12 +77,12 @@ class TestDNSDataForm(MAASServerTestCase):
2010 self.assertEqual(rrdata, dnsdata.rrdata)
2011 self.assertEqual(None, dnsdata.ttl)
2012
2013- def test__doesnt_require_name_on_update(self):
2014+ def test_doesnt_require_name_on_update(self):
2015 dnsdata = factory.make_DNSData()
2016 form = DNSDataForm(instance=dnsdata, data={})
2017 self.assertTrue(form.is_valid(), form.errors)
2018
2019- def test__updates_dnsdata(self):
2020+ def test_updates_dnsdata(self):
2021 dnsdata = factory.make_DNSData()
2022 (rrtype, rrdata) = factory.pick_rrset()
2023 new_ttl = random.randint(1, 1000)
2024diff --git a/src/maasserver/forms/tests/test_dnsresource.py b/src/maasserver/forms/tests/test_dnsresource.py
2025index 130c676..f7a5d1b 100644
2026--- a/src/maasserver/forms/tests/test_dnsresource.py
2027+++ b/src/maasserver/forms/tests/test_dnsresource.py
2028@@ -15,7 +15,7 @@ from maasserver.utils.orm import reload_object
2029
2030
2031 class TestDNSResourceForm(MAASServerTestCase):
2032- def test__creates_dnsresource(self):
2033+ def test_creates_dnsresource(self):
2034 name = factory.make_name("dnsresource")
2035 sip = factory.make_StaticIPAddress()
2036 domain = factory.make_Domain()
2037@@ -31,7 +31,7 @@ class TestDNSResourceForm(MAASServerTestCase):
2038 self.assertEqual(domain.id, dnsresource.domain.id)
2039 self.assertEqual(sip.id, dnsresource.ip_addresses.first().id)
2040
2041- def test__accepts_string_for_ip_addresses(self):
2042+ def test_accepts_string_for_ip_addresses(self):
2043 name = factory.make_name("dnsresource")
2044 sip = factory.make_StaticIPAddress()
2045 domain = factory.make_Domain()
2046@@ -44,7 +44,7 @@ class TestDNSResourceForm(MAASServerTestCase):
2047 self.assertEqual(domain.id, dnsresource.domain.id)
2048 self.assertEqual(sip.id, dnsresource.ip_addresses.first().id)
2049
2050- def test__creates_staticipaddresses(self):
2051+ def test_creates_staticipaddresses(self):
2052 name = factory.make_name("dnsresource")
2053 domain = factory.make_Domain()
2054 ips = [factory.make_ip_address() for _ in range(3)]
2055@@ -64,7 +64,7 @@ class TestDNSResourceForm(MAASServerTestCase):
2056 actual_users = {ip.user_id for ip in actual_ips}
2057 self.assertItemsEqual({request.user.id}, actual_users)
2058
2059- def test__accepts_mix_of_id_and_ipaddress(self):
2060+ def test_accepts_mix_of_id_and_ipaddress(self):
2061 name = factory.make_name("dnsresource")
2062 domain = factory.make_Domain()
2063 ips = [factory.make_StaticIPAddress() for _ in range(6)]
2064@@ -125,12 +125,12 @@ class TestDNSResourceForm(MAASServerTestCase):
2065 self.assertEqual(domain.id, dnsresource.domain.id)
2066 self.assertEqual(None, dnsresource.address_ttl)
2067
2068- def test__doesnt_require_name_on_update(self):
2069+ def test_doesnt_require_name_on_update(self):
2070 dnsresource = factory.make_DNSResource()
2071 form = DNSResourceForm(instance=dnsresource, data={})
2072 self.assertTrue(form.is_valid(), form.errors)
2073
2074- def test__updates_dnsresource(self):
2075+ def test_updates_dnsresource(self):
2076 dnsresource = factory.make_DNSResource()
2077 new_name = factory.make_name("new")
2078 new_sip_ids = [factory.make_StaticIPAddress().id]
2079@@ -152,7 +152,7 @@ class TestDNSResourceForm(MAASServerTestCase):
2080 [ip.id for ip in reload_object(dnsresource).ip_addresses.all()],
2081 )
2082
2083- def test__update_allows_multiple_ips(self):
2084+ def test_update_allows_multiple_ips(self):
2085 dnsresource = factory.make_DNSResource()
2086 new_name = factory.make_name("new")
2087 new_sip_ids = [factory.make_StaticIPAddress().id for _ in range(3)]
2088diff --git a/src/maasserver/forms/tests/test_domain.py b/src/maasserver/forms/tests/test_domain.py
2089index 94d78f4..1b74300 100644
2090--- a/src/maasserver/forms/tests/test_domain.py
2091+++ b/src/maasserver/forms/tests/test_domain.py
2092@@ -14,7 +14,7 @@ from maasserver.utils.orm import reload_object
2093
2094
2095 class TestDomainForm(MAASServerTestCase):
2096- def test__creates_domain(self):
2097+ def test_creates_domain(self):
2098 domain_name = factory.make_name("domain")
2099 domain_authoritative = factory.pick_bool()
2100 ttl = random.randint(1, 604800)
2101@@ -31,12 +31,12 @@ class TestDomainForm(MAASServerTestCase):
2102 self.assertEqual(domain_authoritative, domain.authoritative)
2103 self.assertEqual(ttl, domain.ttl)
2104
2105- def test__doest_require_name_on_update(self):
2106+ def test_doest_require_name_on_update(self):
2107 domain = factory.make_Domain()
2108 form = DomainForm(instance=domain, data={})
2109 self.assertTrue(form.is_valid(), form.errors)
2110
2111- def test__updates_domain(self):
2112+ def test_updates_domain(self):
2113 new_name = factory.make_name("domain")
2114 old_authoritative = factory.pick_bool()
2115 domain = factory.make_Domain(authoritative=old_authoritative)
2116diff --git a/src/maasserver/forms/tests/test_ephemeral.py b/src/maasserver/forms/tests/test_ephemeral.py
2117index 61fe11b..0bf95cd 100644
2118--- a/src/maasserver/forms/tests/test_ephemeral.py
2119+++ b/src/maasserver/forms/tests/test_ephemeral.py
2120@@ -21,13 +21,13 @@ from metadataserver.enum import SCRIPT_TYPE
2121
2122
2123 class TestTestForm(MAASServerTestCase):
2124- def test__doesnt_require_anything(self):
2125+ def test_doesnt_require_anything(self):
2126 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2127 user = factory.make_admin()
2128 form = TestForm(instance=node, user=user, data={})
2129 self.assertTrue(form.is_valid(), form.errors)
2130
2131- def test__not_allowed_in_bad_state(self):
2132+ def test_not_allowed_in_bad_state(self):
2133 node = factory.make_Node(status=NODE_STATUS.DEPLOYING)
2134 user = factory.make_admin()
2135 form = TestForm(instance=node, user=user, data={})
2136@@ -42,7 +42,7 @@ class TestTestForm(MAASServerTestCase):
2137 form.errors,
2138 )
2139
2140- def test__calls_start_testing_if_already_on(self):
2141+ def test_calls_start_testing_if_already_on(self):
2142 node = factory.make_Node(
2143 status=NODE_STATUS.DEPLOYED, power_state=POWER_STATE.ON
2144 )
2145@@ -55,7 +55,7 @@ class TestTestForm(MAASServerTestCase):
2146 mock_start_testing, MockCalledOnceWith(user, False, [], {})
2147 )
2148
2149- def test__calls_start_testing_with_options(self):
2150+ def test_calls_start_testing_with_options(self):
2151 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2152 user = factory.make_admin()
2153 enable_ssh = factory.pick_bool()
2154@@ -80,7 +80,7 @@ class TestTestForm(MAASServerTestCase):
2155 MockCalledOnceWith(user, enable_ssh, testing_scripts, {}),
2156 )
2157
2158- def test__class_start_testing_with_storage_param(self):
2159+ def test_class_start_testing_with_storage_param(self):
2160 node = factory.make_Node(
2161 status=NODE_STATUS.DEPLOYED, with_boot_disk=False
2162 )
2163@@ -116,7 +116,7 @@ class TestTestForm(MAASServerTestCase):
2164 ),
2165 )
2166
2167- def test__class_start_testing_with_storage_param_errors(self):
2168+ def test_class_start_testing_with_storage_param_errors(self):
2169 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2170 user = factory.make_admin()
2171 script = factory.make_Script(
2172@@ -134,7 +134,7 @@ class TestTestForm(MAASServerTestCase):
2173 )
2174 self.assertFalse(form.is_valid())
2175
2176- def test__class_start_testing_with_interface_param(self):
2177+ def test_class_start_testing_with_interface_param(self):
2178 node = factory.make_Node(status=NODE_STATUS.DEPLOYED, interface=False)
2179 interface = factory.make_Interface(node=node)
2180 user = factory.make_admin()
2181@@ -169,7 +169,7 @@ class TestTestForm(MAASServerTestCase):
2182 ),
2183 )
2184
2185- def test__class_start_testing_with_interface_param_errors(self):
2186+ def test_class_start_testing_with_interface_param_errors(self):
2187 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2188 user = factory.make_admin()
2189 script = factory.make_Script(
2190@@ -187,7 +187,7 @@ class TestTestForm(MAASServerTestCase):
2191 )
2192 self.assertFalse(form.is_valid())
2193
2194- def test__class_start_testing_with_runtime_param(self):
2195+ def test_class_start_testing_with_runtime_param(self):
2196 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2197 user = factory.make_admin()
2198 script = factory.make_Script(
2199@@ -211,7 +211,7 @@ class TestTestForm(MAASServerTestCase):
2200 ),
2201 )
2202
2203- def test__class_start_testing_with_runtime_param_errors(self):
2204+ def test_class_start_testing_with_runtime_param_errors(self):
2205 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2206 user = factory.make_admin()
2207 script = factory.make_Script(
2208@@ -229,7 +229,7 @@ class TestTestForm(MAASServerTestCase):
2209 )
2210 self.assertFalse(form.is_valid())
2211
2212- def test__class_start_testing_with_url_param(self):
2213+ def test_class_start_testing_with_url_param(self):
2214 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2215 user = factory.make_admin()
2216 script = factory.make_Script(
2217@@ -253,7 +253,7 @@ class TestTestForm(MAASServerTestCase):
2218 ),
2219 )
2220
2221- def test__class_start_testing_can_override_global_param(self):
2222+ def test_class_start_testing_can_override_global_param(self):
2223 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2224 bd = factory.make_PhysicalBlockDevice(node=node)
2225 user = factory.make_admin()
2226@@ -301,7 +301,7 @@ class TestTestForm(MAASServerTestCase):
2227 ),
2228 )
2229
2230- def test__validates_testing_scripts(self):
2231+ def test_validates_testing_scripts(self):
2232 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2233 user = factory.make_admin()
2234 form = TestForm(
2235@@ -311,7 +311,7 @@ class TestTestForm(MAASServerTestCase):
2236 )
2237 self.assertFalse(form.is_valid())
2238
2239- def test__testing_scripts_cannt_be_none(self):
2240+ def test_testing_scripts_cannt_be_none(self):
2241 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2242 user = factory.make_admin()
2243 form = TestForm(
2244@@ -319,7 +319,7 @@ class TestTestForm(MAASServerTestCase):
2245 )
2246 self.assertFalse(form.is_valid())
2247
2248- def test__cannt_run_destructive_test_on_deployed_machine(self):
2249+ def test_cannt_run_destructive_test_on_deployed_machine(self):
2250 script = factory.make_Script(
2251 script_type=SCRIPT_TYPE.TESTING, destructive=True
2252 )
2253@@ -330,7 +330,7 @@ class TestTestForm(MAASServerTestCase):
2254 )
2255 self.assertFalse(form.is_valid())
2256
2257- def test__cannt_run_destructive_test_on_non_machine(self):
2258+ def test_cannt_run_destructive_test_on_non_machine(self):
2259 script = factory.make_Script(
2260 script_type=SCRIPT_TYPE.TESTING, destructive=True
2261 )
2262@@ -347,7 +347,7 @@ class TestTestForm(MAASServerTestCase):
2263
2264
2265 class TestCommissionForm(MAASServerTestCase):
2266- def test__doesnt_require_anything(self):
2267+ def test_doesnt_require_anything(self):
2268 node = factory.make_Node(
2269 status=NODE_STATUS.READY, power_state=POWER_STATE.OFF
2270 )
2271@@ -355,7 +355,7 @@ class TestCommissionForm(MAASServerTestCase):
2272 form = CommissionForm(instance=node, user=user, data={})
2273 self.assertTrue(form.is_valid(), form.errors)
2274
2275- def test__not_allowed_in_bad_state(self):
2276+ def test_not_allowed_in_bad_state(self):
2277 node = factory.make_Node(
2278 status=NODE_STATUS.DEPLOYING, power_state=POWER_STATE.OFF
2279 )
2280@@ -372,7 +372,7 @@ class TestCommissionForm(MAASServerTestCase):
2281 form.errors,
2282 )
2283
2284- def test__calls_start_commissioning_if_already_on(self):
2285+ def test_calls_start_commissioning_if_already_on(self):
2286 node = factory.make_Node(
2287 status=NODE_STATUS.READY, power_state=POWER_STATE.ON
2288 )
2289@@ -397,7 +397,7 @@ class TestCommissionForm(MAASServerTestCase):
2290 ),
2291 )
2292
2293- def test__calls_start_commissioning_with_options(self):
2294+ def test_calls_start_commissioning_with_options(self):
2295 node = factory.make_Node(
2296 status=NODE_STATUS.READY, power_state=POWER_STATE.OFF
2297 )
2298@@ -442,7 +442,7 @@ class TestCommissionForm(MAASServerTestCase):
2299 ),
2300 )
2301
2302- def test__class_start_commissioning_with_storage_param(self):
2303+ def test_class_start_commissioning_with_storage_param(self):
2304 node = factory.make_Node(
2305 status=NODE_STATUS.READY, with_boot_disk=False
2306 )
2307@@ -512,7 +512,7 @@ class TestCommissionForm(MAASServerTestCase):
2308 ),
2309 )
2310
2311- def test__class_start_commissioning_with_storage_param_errors(self):
2312+ def test_class_start_commissioning_with_storage_param_errors(self):
2313 node = factory.make_Node(status=NODE_STATUS.READY)
2314 user = factory.make_admin()
2315 commissioning_script = factory.make_Script(
2316@@ -537,7 +537,7 @@ class TestCommissionForm(MAASServerTestCase):
2317 )
2318 self.assertFalse(form.is_valid())
2319
2320- def test__class_start_commissioning_with_interface_param(self):
2321+ def test_class_start_commissioning_with_interface_param(self):
2322 node = factory.make_Node(status=NODE_STATUS.READY, interface=False)
2323 commissioning_interface = factory.make_Interface(node=node)
2324 testing_interface = factory.make_Interface(node=node)
2325@@ -613,7 +613,7 @@ class TestCommissionForm(MAASServerTestCase):
2326 ),
2327 )
2328
2329- def test__class_start_commissioning_with_interface_param_errors(self):
2330+ def test_class_start_commissioning_with_interface_param_errors(self):
2331 node = factory.make_Node(status=NODE_STATUS.DEPLOYED)
2332 user = factory.make_admin()
2333 commissioning_script = factory.make_Script(
2334@@ -638,7 +638,7 @@ class TestCommissionForm(MAASServerTestCase):
2335 )
2336 self.assertFalse(form.is_valid())
2337
2338- def test__class_start_commissioning_with_runtime_param(self):
2339+ def test_class_start_commissioning_with_runtime_param(self):
2340 node = factory.make_Node(status=NODE_STATUS.READY)
2341 user = factory.make_admin()
2342 commissioning_script = factory.make_Script(
2343@@ -684,7 +684,7 @@ class TestCommissionForm(MAASServerTestCase):
2344 ),
2345 )
2346
2347- def test__class_start_commissioning_with_runtime_param_errors(self):
2348+ def test_class_start_commissioning_with_runtime_param_errors(self):
2349 node = factory.make_Node(status=NODE_STATUS.READY)
2350 user = factory.make_admin()
2351 commissioning_script = factory.make_Script(
2352@@ -709,7 +709,7 @@ class TestCommissionForm(MAASServerTestCase):
2353 )
2354 self.assertFalse(form.is_valid())
2355
2356- def test__class_start_commissioning_with_url_param(self):
2357+ def test_class_start_commissioning_with_url_param(self):
2358 node = factory.make_Node(status=NODE_STATUS.READY)
2359 user = factory.make_admin()
2360 commissioning_script = factory.make_Script(
2361@@ -755,7 +755,7 @@ class TestCommissionForm(MAASServerTestCase):
2362 ),
2363 )
2364
2365- def test__class_start_commissioning_can_override_global_param(self):
2366+ def test_class_start_commissioning_can_override_global_param(self):
2367 node = factory.make_Node(status=NODE_STATUS.READY)
2368 commissioning_bd = factory.make_PhysicalBlockDevice(node=node)
2369 testing_bd = factory.make_PhysicalBlockDevice(node=node)
2370@@ -839,7 +839,7 @@ class TestCommissionForm(MAASServerTestCase):
2371 ),
2372 )
2373
2374- def test__validates_commissioning_scripts(self):
2375+ def test_validates_commissioning_scripts(self):
2376 node = factory.make_Node(
2377 status=NODE_STATUS.READY, power_state=POWER_STATE.OFF
2378 )
2379@@ -851,7 +851,7 @@ class TestCommissionForm(MAASServerTestCase):
2380 )
2381 self.assertFalse(form.is_valid())
2382
2383- def test__validates_testing_scripts(self):
2384+ def test_validates_testing_scripts(self):
2385 node = factory.make_Node(
2386 status=NODE_STATUS.READY, power_state=POWER_STATE.OFF
2387 )
2388@@ -863,7 +863,7 @@ class TestCommissionForm(MAASServerTestCase):
2389 )
2390 self.assertFalse(form.is_valid())
2391
2392- def test__allows_setting_testing_scripts_to_none(self):
2393+ def test_allows_setting_testing_scripts_to_none(self):
2394 node = factory.make_Node(
2395 status=NODE_STATUS.READY, power_state=POWER_STATE.OFF
2396 )
2397diff --git a/src/maasserver/forms/tests/test_fabric.py b/src/maasserver/forms/tests/test_fabric.py
2398index 1f5ffaa..ea54b06 100644
2399--- a/src/maasserver/forms/tests/test_fabric.py
2400+++ b/src/maasserver/forms/tests/test_fabric.py
2401@@ -12,7 +12,7 @@ from maasserver.utils.orm import reload_object
2402
2403
2404 class TestFabricForm(MAASServerTestCase):
2405- def test__creates_fabric(self):
2406+ def test_creates_fabric(self):
2407 fabric_name = factory.make_name("fabric")
2408 fabric_description = factory.make_name("description")
2409 fabric_class_type = factory.make_name("class_type")
2410@@ -29,12 +29,12 @@ class TestFabricForm(MAASServerTestCase):
2411 self.assertEqual(fabric_description, fabric.description)
2412 self.assertEqual(fabric_class_type, fabric.class_type)
2413
2414- def test__doest_require_name_on_update(self):
2415+ def test_doest_require_name_on_update(self):
2416 fabric = factory.make_Fabric()
2417 form = FabricForm(instance=fabric, data={})
2418 self.assertTrue(form.is_valid(), form.errors)
2419
2420- def test__updates_fabric(self):
2421+ def test_updates_fabric(self):
2422 new_name = factory.make_name("fabric")
2423 new_fabric_description = factory.make_name("description")
2424 new_class_type = factory.make_name("class_type")
2425diff --git a/src/maasserver/forms/tests/test_fannetwork.py b/src/maasserver/forms/tests/test_fannetwork.py
2426index db4376d..22bcfe3 100644
2427--- a/src/maasserver/forms/tests/test_fannetwork.py
2428+++ b/src/maasserver/forms/tests/test_fannetwork.py
2429@@ -14,7 +14,7 @@ from maasserver.utils.orm import reload_object
2430
2431
2432 class TestFanNetworkForm(MAASServerTestCase):
2433- def test__requires_name(self):
2434+ def test_requires_name(self):
2435 slash = random.randint(12, 28)
2436 underlay = factory.make_ipv4_network(slash=slash)
2437 overlay = factory.make_ipv4_network(slash=slash - 4)
2438@@ -24,7 +24,7 @@ class TestFanNetworkForm(MAASServerTestCase):
2439 self.assertFalse(form.is_valid(), form.errors)
2440 self.assertEqual({"name": ["This field is required."]}, form.errors)
2441
2442- def test__requires_overlay(self):
2443+ def test_requires_overlay(self):
2444 slash = random.randint(12, 28)
2445 underlay = factory.make_ipv4_network(slash=slash)
2446 form = FanNetworkForm(
2447@@ -36,7 +36,7 @@ class TestFanNetworkForm(MAASServerTestCase):
2448 self.assertFalse(form.is_valid(), form.errors)
2449 self.assertEqual({"overlay": ["This field is required."]}, form.errors)
2450
2451- def test__requires_underlay(self):
2452+ def test_requires_underlay(self):
2453 slash = random.randint(12, 28)
2454 overlay = factory.make_ipv4_network(slash=slash - 4)
2455 form = FanNetworkForm(
2456@@ -47,7 +47,7 @@ class TestFanNetworkForm(MAASServerTestCase):
2457 {"underlay": ["This field is required."]}, form.errors
2458 )
2459
2460- def test__creates_fannetwork(self):
2461+ def test_creates_fannetwork(self):
2462 fannetwork_name = factory.make_name("fannetwork")
2463 slash = random.randint(12, 28)
2464 underlay = factory.make_ipv4_network(slash=slash)
2465@@ -63,12 +63,12 @@ class TestFanNetworkForm(MAASServerTestCase):
2466 fannetwork = form.save()
2467 self.assertEqual(fannetwork_name, fannetwork.name)
2468
2469- def test__doest_require_name_on_update(self):
2470+ def test_doest_require_name_on_update(self):
2471 fannetwork = factory.make_FanNetwork()
2472 form = FanNetworkForm(instance=fannetwork, data={})
2473 self.assertTrue(form.is_valid(), form.errors)
2474
2475- def test__updates_fannetwork(self):
2476+ def test_updates_fannetwork(self):
2477 new_name = factory.make_name("fannetwork")
2478 fannetwork = factory.make_FanNetwork()
2479 form = FanNetworkForm(instance=fannetwork, data={"name": new_name})
2480diff --git a/src/maasserver/forms/tests/test_interface.py b/src/maasserver/forms/tests/test_interface.py
2481index 17159da..9a223f2 100644
2482--- a/src/maasserver/forms/tests/test_interface.py
2483+++ b/src/maasserver/forms/tests/test_interface.py
2484@@ -63,7 +63,7 @@ class ControllerInterfaceFormTest(MAASServerTestCase):
2485 ("region_rack", {"maker": factory.make_RegionRackController}),
2486 )
2487
2488- def test__edits_interface(self):
2489+ def test_edits_interface(self):
2490 node = self.maker()
2491 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
2492 new_vlan = factory.make_VLAN(vid=33)
2493@@ -79,7 +79,7 @@ class ControllerInterfaceFormTest(MAASServerTestCase):
2494 ),
2495 )
2496
2497- def test__allows_no_vlan(self):
2498+ def test_allows_no_vlan(self):
2499 node = self.maker()
2500 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
2501 form = ControllerInterfaceForm(instance=interface, data={"vlan": None})
2502@@ -92,7 +92,7 @@ class ControllerInterfaceFormTest(MAASServerTestCase):
2503 ),
2504 )
2505
2506- def test__updates_interface_links(self):
2507+ def test_updates_interface_links(self):
2508 interface = factory.make_Interface(
2509 INTERFACE_TYPE.PHYSICAL, name="eth0", link_connected=False
2510 )
2511@@ -116,7 +116,7 @@ class ControllerInterfaceFormTest(MAASServerTestCase):
2512 ),
2513 )
2514
2515- def test__updates_interface_errors_for_not_link_connected_and_speed(self):
2516+ def test_updates_interface_errors_for_not_link_connected_and_speed(self):
2517 interface = factory.make_Interface(
2518 INTERFACE_TYPE.PHYSICAL, name="eth0", link_connected=False
2519 )
2520@@ -134,7 +134,7 @@ class ControllerInterfaceFormTest(MAASServerTestCase):
2521
2522
2523 class DeployedInterfaceFormTest(MAASServerTestCase):
2524- def test__updates_interface(self):
2525+ def test_updates_interface(self):
2526 interface = factory.make_Interface(
2527 INTERFACE_TYPE.PHYSICAL, name="eth0", link_connected=False
2528 )
2529@@ -166,7 +166,7 @@ class DeployedInterfaceFormTest(MAASServerTestCase):
2530 ),
2531 )
2532
2533- def test__updates_interface_errors_for_not_link_connected_and_speed(self):
2534+ def test_updates_interface_errors_for_not_link_connected_and_speed(self):
2535 interface = factory.make_Interface(
2536 INTERFACE_TYPE.PHYSICAL, name="eth0", link_connected=False
2537 )
2538@@ -189,7 +189,7 @@ class DeployedInterfaceFormTest(MAASServerTestCase):
2539
2540
2541 class TestPhysicalInterfaceForm(MAASServerTestCase):
2542- def test__updates_interface(self):
2543+ def test_updates_interface(self):
2544 interface = factory.make_Interface(
2545 INTERFACE_TYPE.PHYSICAL, name="eth0", link_connected=False
2546 )
2547@@ -225,7 +225,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2548 ),
2549 )
2550
2551- def test__updates_interface_errors_for_not_link_connected_and_speed(self):
2552+ def test_updates_interface_errors_for_not_link_connected_and_speed(self):
2553 interface = factory.make_Interface(
2554 INTERFACE_TYPE.PHYSICAL, name="eth0", link_connected=False
2555 )
2556@@ -246,7 +246,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2557 form.errors["__all__"][0],
2558 )
2559
2560- def test__creates_physical_interface(self):
2561+ def test_creates_physical_interface(self):
2562 node = factory.make_Node()
2563 mac_address = factory.make_mac_address()
2564 interface_name = "eth0"
2565@@ -276,7 +276,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2566 )
2567 self.assertItemsEqual([], interface.parents.all())
2568
2569- def test__creates_physical_interface_with_numa_node(self):
2570+ def test_creates_physical_interface_with_numa_node(self):
2571 node = factory.make_Node()
2572 numa_node = factory.make_NUMANode(node=node)
2573 mac_address = factory.make_mac_address()
2574@@ -298,7 +298,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2575 self.assertEqual(interface.node, node)
2576 self.assertEqual(interface.numa_node, numa_node)
2577
2578- def test__creates_physical_interface_generates_name(self):
2579+ def test_creates_physical_interface_generates_name(self):
2580 node = factory.make_Node()
2581 interface_name = factory.make_name("eth")
2582 self.patch(node, "get_next_ifname").return_value = interface_name
2583@@ -328,7 +328,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2584 )
2585 self.assertItemsEqual([], interface.parents.all())
2586
2587- def test__creates_physical_interface_disconnected(self):
2588+ def test_creates_physical_interface_disconnected(self):
2589 node = factory.make_Node()
2590 mac_address = factory.make_mac_address()
2591 interface_name = "eth0"
2592@@ -356,7 +356,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2593 )
2594 self.assertItemsEqual([], interface.parents.all())
2595
2596- def test__create_ensures_link_up(self):
2597+ def test_create_ensures_link_up(self):
2598 node = factory.make_Node()
2599 mac_address = factory.make_mac_address()
2600 interface_name = "eth0"
2601@@ -377,7 +377,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2602 interface.ip_addresses.filter(alloc_type=IPADDRESS_TYPE.STICKY)
2603 )
2604
2605- def test__requires_mac_address(self):
2606+ def test_requires_mac_address(self):
2607 interface_name = "eth0"
2608 vlan = factory.make_VLAN()
2609 form = PhysicalInterfaceForm(
2610@@ -444,7 +444,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2611 interface = form.save()
2612 self.assertEquals(vlan, interface.vlan)
2613
2614- def test__rejects_parents(self):
2615+ def test_rejects_parents(self):
2616 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2617 vlan = factory.make_VLAN()
2618 form = PhysicalInterfaceForm(
2619@@ -463,7 +463,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2620 form.errors["parents"][0],
2621 )
2622
2623- def test__edits_interface(self):
2624+ def test_edits_interface(self):
2625 interface = factory.make_Interface(
2626 INTERFACE_TYPE.PHYSICAL, name="eth0"
2627 )
2628@@ -488,7 +488,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2629 )
2630 self.assertItemsEqual([], interface.parents.all())
2631
2632- def test__edits_doesnt_overwrite_name(self):
2633+ def test_edits_doesnt_overwrite_name(self):
2634 interface = factory.make_Interface(
2635 INTERFACE_TYPE.PHYSICAL, name="eth0"
2636 )
2637@@ -508,7 +508,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2638 )
2639 self.assertItemsEqual([], interface.parents.all())
2640
2641- def test__edits_interface_disconnected(self):
2642+ def test_edits_interface_disconnected(self):
2643 interface = factory.make_Interface(
2644 INTERFACE_TYPE.PHYSICAL, name="eth0"
2645 )
2646@@ -532,7 +532,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2647 )
2648 self.assertItemsEqual([], interface.parents.all())
2649
2650- def test__create_sets_interface_parameters(self):
2651+ def test_create_sets_interface_parameters(self):
2652 node = factory.make_Node()
2653 mac_address = factory.make_mac_address()
2654 interface_name = "eth0"
2655@@ -560,7 +560,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2656 interface.params,
2657 )
2658
2659- def test__update_doesnt_change_interface_parameters(self):
2660+ def test_update_doesnt_change_interface_parameters(self):
2661 interface = factory.make_Interface(
2662 INTERFACE_TYPE.PHYSICAL, name="eth0"
2663 )
2664@@ -590,7 +590,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2665 interface.params,
2666 )
2667
2668- def test__update_does_change_interface_parameters(self):
2669+ def test_update_does_change_interface_parameters(self):
2670 interface = factory.make_Interface(
2671 INTERFACE_TYPE.PHYSICAL, name="eth0"
2672 )
2673@@ -624,7 +624,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2674 interface.params,
2675 )
2676
2677- def test__update_allows_clearing_interface_parameters(self):
2678+ def test_update_allows_clearing_interface_parameters(self):
2679 interface = factory.make_Interface(
2680 INTERFACE_TYPE.PHYSICAL, name="eth0"
2681 )
2682@@ -646,7 +646,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
2683
2684
2685 class VLANInterfaceFormTest(MAASServerTestCase):
2686- def test__creates_vlan_interface(self):
2687+ def test_creates_vlan_interface(self):
2688 vlan = factory.make_VLAN(vid=10)
2689 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2690 form = VLANInterfaceForm(
2691@@ -663,7 +663,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2692 )
2693 self.assertItemsEqual([parent], interface.parents.all())
2694
2695- def test__create_ensures_link_up(self):
2696+ def test_create_ensures_link_up(self):
2697 vlan = factory.make_VLAN(vid=10)
2698 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2699 form = VLANInterfaceForm(
2700@@ -675,7 +675,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2701 interface.ip_addresses.filter(alloc_type=IPADDRESS_TYPE.STICKY)
2702 )
2703
2704- def test__create_rejects_interface_without_vlan(self):
2705+ def test_create_rejects_interface_without_vlan(self):
2706 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2707 form = VLANInterfaceForm(
2708 node=parent.node, data={"parents": [parent.id]}
2709@@ -716,7 +716,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2710 form.errors["vlan"][0],
2711 )
2712
2713- def test__rejects_no_parents(self):
2714+ def test_rejects_no_parents(self):
2715 vlan = factory.make_VLAN(vid=10)
2716 form = VLANInterfaceForm(
2717 node=factory.make_Node(), data={"vlan": vlan.id}
2718@@ -728,7 +728,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2719 form.errors["parents"][0],
2720 )
2721
2722- def test__rejects_vlan_parent(self):
2723+ def test_rejects_vlan_parent(self):
2724 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2725 vlan_parent = factory.make_Interface(
2726 INTERFACE_TYPE.VLAN, parents=[parent]
2727@@ -745,7 +745,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2728 form.errors["parents"][0],
2729 )
2730
2731- def test__rejects_no_vlan(self):
2732+ def test_rejects_no_vlan(self):
2733 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2734 form = VLANInterfaceForm(
2735 node=parent.node, data={"vlan": None, "parents": [parent.id]}
2736@@ -757,7 +757,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2737 form.errors["vlan"][0],
2738 )
2739
2740- def test__rejects_vlan_not_on_same_fabric(self):
2741+ def test_rejects_vlan_not_on_same_fabric(self):
2742 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2743 factory.make_VLAN(fabric=parent.vlan.fabric, vid=10)
2744 other_vlan = factory.make_VLAN()
2745@@ -773,7 +773,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2746 form.errors["vlan"][0],
2747 )
2748
2749- def test__rejects_parent_on_bond(self):
2750+ def test_rejects_parent_on_bond(self):
2751 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2752 factory.make_Interface(INTERFACE_TYPE.BOND, parents=[parent])
2753 vlan = factory.make_VLAN(vid=10)
2754@@ -787,7 +787,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2755 form.errors["parents"][0],
2756 )
2757
2758- def test__rejects_more_than_one_parent(self):
2759+ def test_rejects_more_than_one_parent(self):
2760 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2761 parent2 = factory.make_Interface(
2762 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2763@@ -805,7 +805,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2764 )
2765
2766 @skip("XXX: GavinPanella 2017-03-29 bug=1677203: Fails spuriously.")
2767- def test__edits_interface(self):
2768+ def test_edits_interface(self):
2769 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2770 interface = factory.make_Interface(
2771 INTERFACE_TYPE.VLAN, parents=[parent]
2772@@ -828,7 +828,7 @@ class VLANInterfaceFormTest(MAASServerTestCase):
2773
2774
2775 class BondInterfaceFormTest(MAASServerTestCase):
2776- def test__error_with_invalid_bond_mode(self):
2777+ def test_error_with_invalid_bond_mode(self):
2778 vlan = factory.make_VLAN(vid=10)
2779 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2780 parent2 = factory.make_Interface(
2781@@ -856,7 +856,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2782 form.errors,
2783 )
2784
2785- def test__creates_bond_interface(self):
2786+ def test_creates_bond_interface(self):
2787 vlan = factory.make_VLAN(vid=10)
2788 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2789 parent2 = factory.make_Interface(
2790@@ -886,7 +886,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2791 )
2792 self.assertItemsEqual([parent1, parent2], interface.parents.all())
2793
2794- def test__create_removes_parent_links_and_sets_link_up_on_bond(self):
2795+ def test_create_removes_parent_links_and_sets_link_up_on_bond(self):
2796 vlan = factory.make_VLAN(vid=10)
2797 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2798 parent1.ensure_link_up()
2799@@ -921,7 +921,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2800 interface.ip_addresses.filter(alloc_type=IPADDRESS_TYPE.STICKY)
2801 )
2802
2803- def test__creates_bond_interface_with_parent_mac_address(self):
2804+ def test_creates_bond_interface_with_parent_mac_address(self):
2805 vlan = factory.make_VLAN(vid=10)
2806 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2807 parent2 = factory.make_Interface(
2808@@ -949,7 +949,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2809 )
2810 self.assertItemsEqual([parent1, parent2], interface.parents.all())
2811
2812- def test__creates_bond_interface_with_default_bond_params(self):
2813+ def test_creates_bond_interface_with_default_bond_params(self):
2814 vlan = factory.make_VLAN(vid=10)
2815 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2816 parent2 = factory.make_Interface(
2817@@ -979,7 +979,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2818 interface.params,
2819 )
2820
2821- def test__creates_bond_interface_with_bond_params(self):
2822+ def test_creates_bond_interface_with_bond_params(self):
2823 vlan = factory.make_VLAN(vid=10)
2824 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, vlan=vlan)
2825 parent2 = factory.make_Interface(
2826@@ -1025,7 +1025,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2827 interface.params,
2828 )
2829
2830- def test__rejects_no_parents(self):
2831+ def test_rejects_no_parents(self):
2832 vlan = factory.make_VLAN(vid=10)
2833 interface_name = factory.make_name()
2834 form = BondInterfaceForm(
2835@@ -1039,7 +1039,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2836 form.errors["parents"][0],
2837 )
2838
2839- def test__rejects_when_parents_already_have_children(self):
2840+ def test_rejects_when_parents_already_have_children(self):
2841 node = factory.make_Node()
2842 parent1 = factory.make_Interface(
2843 INTERFACE_TYPE.PHYSICAL, node=node, name="eth0"
2844@@ -1064,7 +1064,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2845 "Interfaces already in-use: eth0, eth1.", form.errors["parents"][0]
2846 )
2847
2848- def test__rejects_when_parents_not_in_same_vlan(self):
2849+ def test_rejects_when_parents_not_in_same_vlan(self):
2850 node = factory.make_Node()
2851 parent1 = factory.make_Interface(
2852 INTERFACE_TYPE.PHYSICAL, node=node, name="eth0"
2853@@ -1083,7 +1083,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2854 form.errors["parents"][0],
2855 )
2856
2857- def test__edits_interface(self):
2858+ def test_edits_interface(self):
2859 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2860 parent2 = factory.make_Interface(
2861 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2862@@ -1119,7 +1119,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2863 [parent1, parent2, new_parent], interface.parents.all()
2864 )
2865
2866- def test__edits_interface_allows_disconnected(self):
2867+ def test_edits_interface_allows_disconnected(self):
2868 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2869 parent2 = factory.make_Interface(
2870 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2871@@ -1139,7 +1139,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2872 ),
2873 )
2874
2875- def test__edits_interface_removes_parents(self):
2876+ def test_edits_interface_removes_parents(self):
2877 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2878 parent2 = factory.make_Interface(
2879 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2880@@ -1167,7 +1167,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2881 )
2882 self.assertItemsEqual([parent1, parent2], interface.parents.all())
2883
2884- def test__edits_interface_updates_mac_address_when_parent_removed(self):
2885+ def test_edits_interface_updates_mac_address_when_parent_removed(self):
2886 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2887 parent2 = factory.make_Interface(
2888 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2889@@ -1198,7 +1198,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2890 interface.mac_address, [parent1.mac_address, parent2.mac_address]
2891 )
2892
2893- def test__edit_doesnt_overwrite_params(self):
2894+ def test_edit_doesnt_overwrite_params(self):
2895 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2896 parent2 = factory.make_Interface(
2897 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2898@@ -1242,7 +1242,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2899 interface.params,
2900 )
2901
2902- def test__edit_does_overwrite_params(self):
2903+ def test_edit_does_overwrite_params(self):
2904 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2905 parent2 = factory.make_Interface(
2906 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2907@@ -1304,7 +1304,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2908 interface.params,
2909 )
2910
2911- def test__edit_allows_zero_params(self):
2912+ def test_edit_allows_zero_params(self):
2913 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2914 parent2 = factory.make_Interface(
2915 INTERFACE_TYPE.PHYSICAL, node=parent1.node
2916@@ -1368,7 +1368,7 @@ class BondInterfaceFormTest(MAASServerTestCase):
2917
2918
2919 class BridgeInterfaceFormTest(MAASServerTestCase):
2920- def test__creates_bridge_interface(self):
2921+ def test_creates_bridge_interface(self):
2922 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2923 interface_name = factory.make_name()
2924 form = BridgeInterfaceForm(
2925@@ -1386,7 +1386,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2926 self.assertEqual(interface.mac_address, parent.mac_address)
2927 self.assertItemsEqual([parent], interface.parents.all())
2928
2929- def test__allows_bridge_on_parent_with_vlan_bridges(self):
2930+ def test_allows_bridge_on_parent_with_vlan_bridges(self):
2931 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2932 vlan1 = factory.make_Interface(INTERFACE_TYPE.VLAN, parents=[parent])
2933 factory.make_Interface(INTERFACE_TYPE.BRIDGE, parents=[vlan1])
2934@@ -1408,7 +1408,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2935 self.assertEqual(interface.mac_address, parent.mac_address)
2936 self.assertItemsEqual([parent], interface.parents.all())
2937
2938- def test__allows_bridge_on_bond_with_vlan_bridges(self):
2939+ def test_allows_bridge_on_bond_with_vlan_bridges(self):
2940 node = factory.make_Node()
2941 eth0 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
2942 eth1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
2943@@ -1434,7 +1434,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2944 self.assertEqual(interface.mac_address, bond0.mac_address)
2945 self.assertItemsEqual([bond0], interface.parents.all())
2946
2947- def test__create_removes_parent_links_and_sets_link_up_on_bridge(self):
2948+ def test_create_removes_parent_links_and_sets_link_up_on_bridge(self):
2949 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2950 parent.ensure_link_up()
2951 interface_name = factory.make_name()
2952@@ -1454,7 +1454,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2953 interface.ip_addresses.filter(alloc_type=IPADDRESS_TYPE.STICKY)
2954 )
2955
2956- def test__creates_bridge_interface_with_parent_mac_address(self):
2957+ def test_creates_bridge_interface_with_parent_mac_address(self):
2958 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
2959 interface_name = factory.make_name()
2960 form = BridgeInterfaceForm(
2961@@ -1477,7 +1477,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2962 )
2963 self.assertItemsEqual([parent], interface.parents.all())
2964
2965- def test__rejects_no_parent(self):
2966+ def test_rejects_no_parent(self):
2967 interface_name = factory.make_name()
2968 form = BridgeInterfaceForm(
2969 node=factory.make_Node(), data={"name": interface_name}
2970@@ -1489,7 +1489,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2971 form.errors["parents"][0],
2972 )
2973
2974- def test__rejects_when_parent_already_have_children(self):
2975+ def test_rejects_when_parent_already_have_children(self):
2976 node = factory.make_Node()
2977 eth0 = factory.make_Interface(
2978 INTERFACE_TYPE.PHYSICAL, node=node, name="eth0"
2979@@ -1513,7 +1513,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2980 "Interfaces already in-use: eth0.", form.errors["parents"][0]
2981 )
2982
2983- def test__rejects_when_parent_is_bridge(self):
2984+ def test_rejects_when_parent_is_bridge(self):
2985 node = factory.make_Node()
2986 bridge = factory.make_Interface(INTERFACE_TYPE.BRIDGE, node=node)
2987 interface_name = factory.make_name()
2988@@ -1527,7 +1527,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2989 form.errors["parents"][0],
2990 )
2991
2992- def test__rejects_when_parent_is_already_in_a_bridge(self):
2993+ def test_rejects_when_parent_is_already_in_a_bridge(self):
2994 node = factory.make_Node()
2995 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
2996 factory.make_Interface(
2997@@ -1544,7 +1544,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
2998 form.errors["parents"][0],
2999 )
3000
3001- def test__rejects_when_parent_is_already_in_a_bond(self):
3002+ def test_rejects_when_parent_is_already_in_a_bond(self):
3003 node = factory.make_Node()
3004 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
3005 parent2 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
3006@@ -1562,7 +1562,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
3007 form.errors["parents"][0],
3008 )
3009
3010- def test__edits_interface(self):
3011+ def test_edits_interface(self):
3012 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3013 interface = factory.make_Interface(
3014 INTERFACE_TYPE.BRIDGE, parents=[parent]
3015@@ -1594,7 +1594,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
3016 )
3017 self.assertItemsEqual([new_parent], interface.parents.all())
3018
3019- def test__edits_interface_allows_disconnected(self):
3020+ def test_edits_interface_allows_disconnected(self):
3021 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3022 interface = factory.make_Interface(
3023 INTERFACE_TYPE.BRIDGE, parents=[parent]
3024@@ -1611,7 +1611,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
3025 ),
3026 )
3027
3028- def test__edit_doesnt_overwrite_params(self):
3029+ def test_edit_doesnt_overwrite_params(self):
3030 """Check that updating parameters that are not bridge specific do not
3031 overwrite the bridge specific parameters."""
3032 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3033@@ -1640,7 +1640,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
3034 interface.params,
3035 )
3036
3037- def test__edit_does_overwrite_params(self):
3038+ def test_edit_does_overwrite_params(self):
3039 """Check that updating specific bridge parameters that do actually
3040 update the parameters."""
3041 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3042@@ -1680,7 +1680,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
3043 interface.params,
3044 )
3045
3046- def test__edit_allows_zero_params(self):
3047+ def test_edit_allows_zero_params(self):
3048 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3049 interface = factory.make_Interface(
3050 INTERFACE_TYPE.BRIDGE, parents=[parent]
3051@@ -1720,7 +1720,7 @@ class BridgeInterfaceFormTest(MAASServerTestCase):
3052
3053
3054 class AcquiredBridgeInterfaceFormTest(MAASServerTestCase):
3055- def test__creates_acquired_bridge_interface(self):
3056+ def test_creates_acquired_bridge_interface(self):
3057 interface_name = factory.make_name("br")
3058 node = factory.make_Node()
3059 parent_fabric = factory.make_Fabric()
3060@@ -1760,7 +1760,7 @@ class AcquiredBridgeInterfaceFormTest(MAASServerTestCase):
3061 self.assertItemsEqual([parent_sip], interface.ip_addresses.all())
3062 self.assertItemsEqual([], parent.ip_addresses.all())
3063
3064- def test__rejects_no_parent(self):
3065+ def test_rejects_no_parent(self):
3066 interface_name = factory.make_name()
3067 form = AcquiredBridgeInterfaceForm(
3068 node=factory.make_Node(), data={"name": interface_name}
3069@@ -1772,7 +1772,7 @@ class AcquiredBridgeInterfaceFormTest(MAASServerTestCase):
3070 form.errors["parents"][0],
3071 )
3072
3073- def test__rejects_when_parent_already_have_non_vlan_children(self):
3074+ def test_rejects_when_parent_already_have_non_vlan_children(self):
3075 node = factory.make_Node()
3076 eth0 = factory.make_Interface(
3077 INTERFACE_TYPE.PHYSICAL, node=node, name="eth0"
3078@@ -1794,7 +1794,7 @@ class AcquiredBridgeInterfaceFormTest(MAASServerTestCase):
3079 "Interfaces already in-use: eth0.", form.errors["parents"][0]
3080 )
3081
3082- def test__rejects_when_parent_is_bridge(self):
3083+ def test_rejects_when_parent_is_bridge(self):
3084 node = factory.make_Node()
3085 bridge = factory.make_Interface(INTERFACE_TYPE.BRIDGE, node=node)
3086 interface_name = factory.make_name()
3087@@ -1808,7 +1808,7 @@ class AcquiredBridgeInterfaceFormTest(MAASServerTestCase):
3088 form.errors["parents"][0],
3089 )
3090
3091- def test__rejects_when_parent_is_already_in_a_bridge(self):
3092+ def test_rejects_when_parent_is_already_in_a_bridge(self):
3093 node = factory.make_Node()
3094 parent = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
3095 factory.make_Interface(
3096@@ -1825,7 +1825,7 @@ class AcquiredBridgeInterfaceFormTest(MAASServerTestCase):
3097 form.errors["parents"][0],
3098 )
3099
3100- def test__rejects_when_parent_is_already_in_a_bond(self):
3101+ def test_rejects_when_parent_is_already_in_a_bond(self):
3102 node = factory.make_Node()
3103 parent1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
3104 parent2 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
3105diff --git a/src/maasserver/forms/tests/test_interface_link.py b/src/maasserver/forms/tests/test_interface_link.py
3106index ae4fbc6..42ebce1 100644
3107--- a/src/maasserver/forms/tests/test_interface_link.py
3108+++ b/src/maasserver/forms/tests/test_interface_link.py
3109@@ -22,20 +22,20 @@ from maasserver.utils.orm import get_one, reload_object
3110
3111
3112 class TestInterfaceLinkForm(MAASServerTestCase):
3113- def test__requires_mode(self):
3114+ def test_requires_mode(self):
3115 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3116 form = InterfaceLinkForm(instance=interface, data={})
3117 self.assertFalse(form.is_valid(), form.errors)
3118 self.assertEqual({"mode": ["This field is required."]}, form.errors)
3119
3120- def test__mode_is_case_insensitive(self):
3121+ def test_mode_is_case_insensitive(self):
3122 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3123 form = InterfaceLinkForm(
3124 instance=interface, data={"mode": INTERFACE_LINK_TYPE.DHCP.upper()}
3125 )
3126 self.assertTrue(form.is_valid(), form.errors)
3127
3128- def test__sets_subnet_queryset_to_all_on_interface_wihtout_vlan(self):
3129+ def test_sets_subnet_queryset_to_all_on_interface_wihtout_vlan(self):
3130 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3131 interface.vlan = None
3132 interface.save()
3133@@ -44,13 +44,13 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3134 list(Subnet.objects.all()), list(form.fields["subnet"].queryset)
3135 )
3136
3137- def test__sets_subnet_queryset_to_subnets_on_interface_vlan(self):
3138+ def test_sets_subnet_queryset_to_subnets_on_interface_vlan(self):
3139 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3140 subnets = [factory.make_Subnet(vlan=interface.vlan) for _ in range(3)]
3141 form = InterfaceLinkForm(instance=interface, data={})
3142 self.assertItemsEqual(subnets, form.fields["subnet"].queryset)
3143
3144- def test__AUTO_requires_subnet(self):
3145+ def test_AUTO_requires_subnet(self):
3146 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3147 form = InterfaceLinkForm(
3148 instance=interface, data={"mode": INTERFACE_LINK_TYPE.AUTO}
3149@@ -58,7 +58,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3150 self.assertFalse(form.is_valid(), form.errors)
3151 self.assertEqual({"subnet": ["This field is required."]}, form.errors)
3152
3153- def test__AUTO_creates_link_to_AUTO_with_subnet(self):
3154+ def test_AUTO_creates_link_to_AUTO_with_subnet(self):
3155 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3156 auto_subnet = factory.make_Subnet(vlan=interface.vlan)
3157 form = InterfaceLinkForm(
3158@@ -70,7 +70,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3159 auto_ip = interface.ip_addresses.get(alloc_type=IPADDRESS_TYPE.AUTO)
3160 self.assertEqual(auto_subnet, auto_ip.subnet)
3161
3162- def test__AUTO_sets_node_gateway_link_v4(self):
3163+ def test_AUTO_sets_node_gateway_link_v4(self):
3164 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3165 network = factory.make_ipv4_network()
3166 auto_subnet = factory.make_Subnet(
3167@@ -90,7 +90,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3168 node = interface.get_node()
3169 self.assertEqual(auto_ip, node.gateway_link_ipv4)
3170
3171- def test__AUTO_sets_node_gateway_link_v6(self):
3172+ def test_AUTO_sets_node_gateway_link_v6(self):
3173 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3174 network = factory.make_ipv6_network()
3175 auto_subnet = factory.make_Subnet(
3176@@ -110,7 +110,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3177 node = interface.get_node()
3178 self.assertEqual(auto_ip, node.gateway_link_ipv6)
3179
3180- def test__AUTO_default_gateway_requires_subnet(self):
3181+ def test_AUTO_default_gateway_requires_subnet(self):
3182 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3183 form = InterfaceLinkForm(
3184 instance=interface,
3185@@ -127,7 +127,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3186 form.errors,
3187 )
3188
3189- def test__AUTO_default_gateway_requires_subnet_with_gateway_ip(self):
3190+ def test_AUTO_default_gateway_requires_subnet_with_gateway_ip(self):
3191 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3192 auto_subnet = factory.make_Subnet(vlan=interface.vlan)
3193 auto_subnet.gateway_ip = None
3194@@ -151,7 +151,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3195 form.errors,
3196 )
3197
3198- def test__DHCP_not_allowed_if_already_DHCP_with_subnet(self):
3199+ def test_DHCP_not_allowed_if_already_DHCP_with_subnet(self):
3200 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3201 dhcp_subnet = factory.make_Subnet()
3202 factory.make_StaticIPAddress(
3203@@ -173,7 +173,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3204 form.errors,
3205 )
3206
3207- def test__DHCP_not_allowed_if_already_DHCP_without_subnet(self):
3208+ def test_DHCP_not_allowed_if_already_DHCP_without_subnet(self):
3209 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3210 static_ip = factory.make_StaticIPAddress(
3211 alloc_type=IPADDRESS_TYPE.DHCP, ip="", interface=interface
3212@@ -188,7 +188,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3213 {"mode": ["Interface is already set to DHCP."]}, form.errors
3214 )
3215
3216- def test__DHCP_not_allowed_default_gateway(self):
3217+ def test_DHCP_not_allowed_default_gateway(self):
3218 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3219 form = InterfaceLinkForm(
3220 instance=interface,
3221@@ -204,7 +204,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3222 form.errors,
3223 )
3224
3225- def test__DHCP_creates_link_to_DHCP_with_subnet(self):
3226+ def test_DHCP_creates_link_to_DHCP_with_subnet(self):
3227 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3228 dhcp_subnet = factory.make_Subnet(vlan=interface.vlan)
3229 form = InterfaceLinkForm(
3230@@ -216,7 +216,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3231 dhcp_ip = interface.ip_addresses.get(alloc_type=IPADDRESS_TYPE.DHCP)
3232 self.assertEqual(dhcp_subnet, dhcp_ip.subnet)
3233
3234- def test__DHCP_creates_link_to_DHCP_without_subnet(self):
3235+ def test_DHCP_creates_link_to_DHCP_without_subnet(self):
3236 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3237 form = InterfaceLinkForm(
3238 instance=interface, data={"mode": INTERFACE_LINK_TYPE.DHCP}
3239@@ -229,7 +229,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3240 )
3241 )
3242
3243- def test__STATIC_requires_subnet(self):
3244+ def test_STATIC_requires_subnet(self):
3245 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3246 form = InterfaceLinkForm(
3247 instance=interface, data={"mode": INTERFACE_LINK_TYPE.STATIC}
3248@@ -237,7 +237,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3249 self.assertFalse(form.is_valid(), form.errors)
3250 self.assertEqual({"subnet": ["This field is required."]}, form.errors)
3251
3252- def test__STATIC_not_allowed_if_ip_address_not_in_subnet(self):
3253+ def test_STATIC_not_allowed_if_ip_address_not_in_subnet(self):
3254 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3255 network = factory.make_ipv4_network()
3256 subnet = factory.make_Subnet(
3257@@ -262,7 +262,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3258 form.errors,
3259 )
3260
3261- def test__STATIC_not_allowed_if_ip_address_in_dynamic_range(self):
3262+ def test_STATIC_not_allowed_if_ip_address_in_dynamic_range(self):
3263 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3264 subnet = factory.make_ipv4_Subnet_with_IPRanges(vlan=interface.vlan)
3265 dynamic_range = subnet.get_dynamic_ranges()[0]
3266@@ -286,7 +286,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3267 form.errors,
3268 )
3269
3270- def test__STATIC_sets_ip_in_unmanaged_subnet(self):
3271+ def test_STATIC_sets_ip_in_unmanaged_subnet(self):
3272 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3273 subnet = factory.make_Subnet(vlan=interface.vlan)
3274 ip = factory.pick_ip_in_network(subnet.get_ipnetwork())
3275@@ -308,7 +308,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3276 )
3277 )
3278
3279- def test__STATIC_sets_ip_for_unmanaged_subnet_specifier(self):
3280+ def test_STATIC_sets_ip_for_unmanaged_subnet_specifier(self):
3281 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3282 subnet = factory.make_Subnet(vlan=interface.vlan)
3283 ip = factory.pick_ip_in_network(subnet.get_ipnetwork())
3284@@ -330,7 +330,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3285 )
3286 )
3287
3288- def test__STATIC_sets_ip_for_subnet_cidr_specifier(self):
3289+ def test_STATIC_sets_ip_for_subnet_cidr_specifier(self):
3290 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3291 subnet = factory.make_Subnet(vlan=interface.vlan)
3292 ip = factory.pick_ip_in_network(subnet.get_ipnetwork())
3293@@ -352,7 +352,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3294 )
3295 )
3296
3297- def test__STATIC_sets_ip_in_subnet(self):
3298+ def test_STATIC_sets_ip_in_subnet(self):
3299 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3300 subnet = factory.make_Subnet(vlan=interface.vlan)
3301 ip_in_subnet = factory.pick_ip_in_Subnet(subnet)
3302@@ -376,7 +376,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3303 )
3304 )
3305
3306- def test__STATIC_picks_ip_in_subnet(self):
3307+ def test_STATIC_picks_ip_in_subnet(self):
3308 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3309 subnet = factory.make_Subnet(vlan=interface.vlan)
3310 form = InterfaceLinkForm(
3311@@ -393,7 +393,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3312 self.assertIsNotNone(ip_address)
3313 self.assertIn(IPAddress(ip_address.ip), subnet.get_ipnetwork())
3314
3315- def test__STATIC_sets_node_gateway_link_ipv4(self):
3316+ def test_STATIC_sets_node_gateway_link_ipv4(self):
3317 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3318 network = factory.make_ipv4_network()
3319 subnet = factory.make_Subnet(
3320@@ -417,7 +417,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3321 node = interface.get_node()
3322 self.assertEqual(ip_address, node.gateway_link_ipv4)
3323
3324- def test__STATIC_sets_node_gateway_link_ipv6(self):
3325+ def test_STATIC_sets_node_gateway_link_ipv6(self):
3326 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3327 network = factory.make_ipv6_network()
3328 subnet = factory.make_Subnet(
3329@@ -441,7 +441,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3330 node = interface.get_node()
3331 self.assertEqual(ip_address, node.gateway_link_ipv6)
3332
3333- def test__LINK_UP_not_allowed_with_other_ip_addresses(self):
3334+ def test_LINK_UP_not_allowed_with_other_ip_addresses(self):
3335 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3336 factory.make_StaticIPAddress(
3337 alloc_type=IPADDRESS_TYPE.DHCP, ip="", interface=interface
3338@@ -461,7 +461,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3339 form.errors,
3340 )
3341
3342- def test__LINK_UP_creates_link_STICKY_with_subnet(self):
3343+ def test_LINK_UP_creates_link_STICKY_with_subnet(self):
3344 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3345 link_subnet = factory.make_Subnet(vlan=interface.vlan)
3346 form = InterfaceLinkForm(
3347@@ -477,7 +477,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3348 self.assertIsNone(link_ip.ip)
3349 self.assertEqual(link_subnet, link_ip.subnet)
3350
3351- def test__LINK_UP_creates_link_STICKY_without_subnet(self):
3352+ def test_LINK_UP_creates_link_STICKY_without_subnet(self):
3353 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3354 form = InterfaceLinkForm(
3355 instance=interface, data={"mode": INTERFACE_LINK_TYPE.LINK_UP}
3356@@ -490,7 +490,7 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3357 self.assertIsNotNone(link_ip)
3358 self.assertIsNone(link_ip.ip)
3359
3360- def test__LINK_UP_not_allowed_default_gateway(self):
3361+ def test_LINK_UP_not_allowed_default_gateway(self):
3362 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3363 form = InterfaceLinkForm(
3364 instance=interface,
3365@@ -541,13 +541,13 @@ class TestInterfaceLinkForm(MAASServerTestCase):
3366
3367
3368 class TestInterfaceUnlinkForm(MAASServerTestCase):
3369- def test__requires_id(self):
3370+ def test_requires_id(self):
3371 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3372 form = InterfaceUnlinkForm(instance=interface, data={})
3373 self.assertFalse(form.is_valid(), form.errors)
3374 self.assertEqual({"id": ["This field is required."]}, form.errors)
3375
3376- def test__must_be_valid_id(self):
3377+ def test_must_be_valid_id(self):
3378 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3379 link_id = random.randint(100, 1000)
3380 form = InterfaceUnlinkForm(instance=interface, data={"id": link_id})
3381@@ -561,7 +561,7 @@ class TestInterfaceUnlinkForm(MAASServerTestCase):
3382 form.errors,
3383 )
3384
3385- def test__DHCP_deletes_link_with_subnet(self):
3386+ def test_DHCP_deletes_link_with_subnet(self):
3387 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3388 dhcp_subnet = factory.make_Subnet(vlan=interface.vlan)
3389 interface.link_subnet(INTERFACE_LINK_TYPE.DHCP, dhcp_subnet)
3390@@ -572,7 +572,7 @@ class TestInterfaceUnlinkForm(MAASServerTestCase):
3391 form.save()
3392 self.assertIsNone(reload_object(dhcp_ip))
3393
3394- def test__STATIC_deletes_link_in_subnet(self):
3395+ def test_STATIC_deletes_link_in_subnet(self):
3396 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3397 subnet = factory.make_Subnet(vlan=interface.vlan)
3398 ip = factory.pick_ip_in_network(subnet.get_ipnetwork())
3399@@ -592,7 +592,7 @@ class TestInterfaceUnlinkForm(MAASServerTestCase):
3400 form.save()
3401 self.assertIsNone(reload_object(static_ip))
3402
3403- def test__LINK_UP_deletes_link(self):
3404+ def test_LINK_UP_deletes_link(self):
3405 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3406 subnet = factory.make_Subnet(vlan=interface.vlan)
3407 link_ip = factory.make_StaticIPAddress(
3408@@ -622,7 +622,7 @@ class TestInterfaceSetDefaultGatwayForm(MAASServerTestCase):
3409 alloc_type=alloc_type, ip=ip, subnet=subnet, interface=interface
3410 )
3411
3412- def test__interface_needs_gateways(self):
3413+ def test_interface_needs_gateways(self):
3414 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3415 form = InterfaceSetDefaultGatwayForm(instance=interface, data={})
3416 self.assertFalse(form.is_valid(), form.errors)
3417@@ -631,14 +631,14 @@ class TestInterfaceSetDefaultGatwayForm(MAASServerTestCase):
3418 form.errors,
3419 )
3420
3421- def test__doesnt_require_link_id_if_only_one_gateway_per_family(self):
3422+ def test_doesnt_require_link_id_if_only_one_gateway_per_family(self):
3423 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3424 self.make_ip_family_link(interface, factory.make_ipv4_network())
3425 self.make_ip_family_link(interface, factory.make_ipv6_network())
3426 form = InterfaceSetDefaultGatwayForm(instance=interface, data={})
3427 self.assertTrue(form.is_valid(), form.errors)
3428
3429- def test__requires_link_id_if_more_than_one_gateway_per_family(self):
3430+ def test_requires_link_id_if_more_than_one_gateway_per_family(self):
3431 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3432 self.make_ip_family_link(interface, factory.make_ipv4_network())
3433 self.make_ip_family_link(interface, factory.make_ipv6_network())
3434@@ -656,7 +656,7 @@ class TestInterfaceSetDefaultGatwayForm(MAASServerTestCase):
3435 form.errors,
3436 )
3437
3438- def test__link_id_fields_setup_correctly(self):
3439+ def test_link_id_fields_setup_correctly(self):
3440 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3441 links = []
3442 for _ in range(2):
3443@@ -676,7 +676,7 @@ class TestInterfaceSetDefaultGatwayForm(MAASServerTestCase):
3444 choice_ids = [choice[0] for choice in form.fields["link_id"].choices]
3445 self.assertItemsEqual(link_ids, choice_ids)
3446
3447- def test__sets_gateway_links_works_on_dhcp_with_gateway_ip(self):
3448+ def test_sets_gateway_links_works_on_dhcp_with_gateway_ip(self):
3449 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3450 ipv4_link = self.make_ip_family_link(
3451 interface, factory.make_ipv4_network(), IPADDRESS_TYPE.DHCP
3452@@ -691,7 +691,7 @@ class TestInterfaceSetDefaultGatwayForm(MAASServerTestCase):
3453 self.assertEqual(ipv4_link, node.gateway_link_ipv4)
3454 self.assertEqual(ipv6_link, node.gateway_link_ipv6)
3455
3456- def test__sets_gateway_links_on_node_when_no_link_id(self):
3457+ def test_sets_gateway_links_on_node_when_no_link_id(self):
3458 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3459 ipv4_link = self.make_ip_family_link(
3460 interface, factory.make_ipv4_network()
3461@@ -706,7 +706,7 @@ class TestInterfaceSetDefaultGatwayForm(MAASServerTestCase):
3462 self.assertEqual(ipv4_link, node.gateway_link_ipv4)
3463 self.assertEqual(ipv6_link, node.gateway_link_ipv6)
3464
3465- def test__sets_gateway_link_v4_on_node_when_link_id(self):
3466+ def test_sets_gateway_link_v4_on_node_when_link_id(self):
3467 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3468 ipv4_link = self.make_ip_family_link(
3469 interface, factory.make_ipv4_network()
3470@@ -720,7 +720,7 @@ class TestInterfaceSetDefaultGatwayForm(MAASServerTestCase):
3471 node = interface.get_node()
3472 self.assertEqual(ipv4_link, node.gateway_link_ipv4)
3473
3474- def test__sets_gateway_link_v6_on_node_when_link_id(self):
3475+ def test_sets_gateway_link_v6_on_node_when_link_id(self):
3476 interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
3477 ipv6_link = self.make_ip_family_link(
3478 interface, factory.make_ipv6_network()
3479diff --git a/src/maasserver/forms/tests/test_iprange.py b/src/maasserver/forms/tests/test_iprange.py
3480index b2a6dbb..c8dfb70 100644
3481--- a/src/maasserver/forms/tests/test_iprange.py
3482+++ b/src/maasserver/forms/tests/test_iprange.py
3483@@ -17,11 +17,11 @@ from maasserver.utils.orm import reload_object
3484
3485
3486 class TestIPRangeForm(MAASServerTestCase):
3487- def test__empty_form_fails_validation(self):
3488+ def test_empty_form_fails_validation(self):
3489 form = IPRangeForm({})
3490 self.assertFalse(form.is_valid(), dict(form.errors))
3491
3492- def test__requires_start_ip(self):
3493+ def test_requires_start_ip(self):
3494 subnet = factory.make_Subnet(cidr="10.0.0.0/24")
3495 comment = factory.make_name("comment")
3496 form = IPRangeForm(
3497@@ -37,7 +37,7 @@ class TestIPRangeForm(MAASServerTestCase):
3498 form.errors["start_ip"], Contains("This field is required.")
3499 )
3500
3501- def test__requires_end_ip(self):
3502+ def test_requires_end_ip(self):
3503 subnet = factory.make_Subnet(cidr="10.0.0.0/24")
3504 comment = factory.make_name("comment")
3505 form = IPRangeForm(
3506@@ -53,7 +53,7 @@ class TestIPRangeForm(MAASServerTestCase):
3507 form.errors["end_ip"], Contains("This field is required.")
3508 )
3509
3510- def test__requires_type(self):
3511+ def test_requires_type(self):
3512 subnet = factory.make_Subnet(cidr="10.0.0.0/24")
3513 comment = factory.make_name("comment")
3514 form = IPRangeForm(
3515@@ -69,7 +69,7 @@ class TestIPRangeForm(MAASServerTestCase):
3516 form.errors["type"], Contains("This field is required.")
3517 )
3518
3519- def test__requires_subnet(self):
3520+ def test_requires_subnet(self):
3521 comment = factory.make_name("comment")
3522 form = IPRangeForm(
3523 {
3524@@ -84,7 +84,7 @@ class TestIPRangeForm(MAASServerTestCase):
3525 form.errors["subnet"], Contains("This field is required.")
3526 )
3527
3528- def test__subnet_optional_if_it_can_be_found(self):
3529+ def test_subnet_optional_if_it_can_be_found(self):
3530 subnet = factory.make_Subnet(cidr="10.0.0.0/24")
3531 comment = factory.make_name("comment")
3532 form = IPRangeForm(
3533@@ -99,7 +99,7 @@ class TestIPRangeForm(MAASServerTestCase):
3534 iprange = form.save()
3535 self.assertEqual(iprange.subnet, subnet)
3536
3537- def test__comment_optional(self):
3538+ def test_comment_optional(self):
3539 subnet = factory.make_Subnet(cidr="10.0.0.0/24")
3540 form = IPRangeForm(
3541 {
3542@@ -113,7 +113,7 @@ class TestIPRangeForm(MAASServerTestCase):
3543 iprange = form.save()
3544 self.assertThat(iprange.comment, Equals(""))
3545
3546- def test__creates_iprange(self):
3547+ def test_creates_iprange(self):
3548 subnet = factory.make_Subnet(cidr="10.0.0.0/24")
3549 comment = factory.make_name("comment")
3550 form = IPRangeForm(
3551@@ -133,7 +133,7 @@ class TestIPRangeForm(MAASServerTestCase):
3552 self.assertEqual(iprange.type, IPRANGE_TYPE.RESERVED)
3553 self.assertEqual(iprange.comment, comment)
3554
3555- def test__creates_iprange_with_user(self):
3556+ def test_creates_iprange_with_user(self):
3557 subnet = factory.make_Subnet(cidr="10.0.0.0/24")
3558 comment = factory.make_name("comment")
3559 request = Mock()
3560@@ -157,7 +157,7 @@ class TestIPRangeForm(MAASServerTestCase):
3561 self.assertEqual(iprange.comment, comment)
3562 self.assertEqual(iprange.user, request.user)
3563
3564- def test__updates_iprange(self):
3565+ def test_updates_iprange(self):
3566 subnet = factory.make_ipv4_Subnet_with_IPRanges()
3567 iprange = subnet.get_dynamic_ranges().first()
3568 new_comment = factory.make_name("comment")
3569diff --git a/src/maasserver/forms/tests/test_machinewithmacaddresses.py b/src/maasserver/forms/tests/test_machinewithmacaddresses.py
3570index 4959e00..6e78321 100644
3571--- a/src/maasserver/forms/tests/test_machinewithmacaddresses.py
3572+++ b/src/maasserver/forms/tests/test_machinewithmacaddresses.py
3573@@ -46,7 +46,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3574 patch_usable_architectures(self, [architecture])
3575 return self.get_QueryDict(params)
3576
3577- def test__valid(self):
3578+ def test_valid(self):
3579 architecture = make_usable_architecture(self)
3580 form = MachineWithMACAddressesForm(
3581 data=self.make_params(
3582@@ -62,7 +62,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3583 )
3584 self.assertEqual(architecture, form.cleaned_data["architecture"])
3585
3586- def test__simple_invalid(self):
3587+ def test_simple_invalid(self):
3588 # If the form only has one (invalid) MAC address field to validate,
3589 # the error message in form.errors['mac_addresses'] is the
3590 # message from the field's validation error.
3591@@ -77,7 +77,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3592 form.errors["mac_addresses"],
3593 )
3594
3595- def test__multiple_invalid(self):
3596+ def test_multiple_invalid(self):
3597 # If the form has multiple MAC address fields to validate,
3598 # if one or more fields are invalid, a single error message is
3599 # present in form.errors['mac_addresses'] after validation.
3600@@ -96,7 +96,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3601 form.errors["mac_addresses"],
3602 )
3603
3604- def test__mac_in_use_on_current_node_passes(self):
3605+ def test_mac_in_use_on_current_node_passes(self):
3606 node = factory.make_Node_with_Interface_on_Subnet(
3607 address="aa:bb:cc:dd:ee:ff"
3608 )
3609@@ -116,7 +116,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3610 )
3611 self.assertEqual(architecture, form.cleaned_data["architecture"])
3612
3613- def test__with_mac_in_use_on_another_node_fails(self):
3614+ def test_with_mac_in_use_on_another_node_fails(self):
3615 factory.make_Node_with_Interface_on_Subnet(address="aa:bb:cc:dd:ee:ff")
3616 architecture = make_usable_architecture(self)
3617 node = factory.make_Node_with_Interface_on_Subnet()
3618@@ -131,7 +131,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3619 self.assertFalse(form.is_valid(), dict(form.errors))
3620 self.assertThat(dict(form.errors), Contains("mac_addresses"))
3621
3622- def test__with_mac_in_use_on_uknown_interface_passes(self):
3623+ def test_with_mac_in_use_on_uknown_interface_passes(self):
3624 factory.make_Interface(
3625 INTERFACE_TYPE.UNKNOWN, mac_address="aa:bb:cc:dd:ee:ff"
3626 )
3627@@ -150,7 +150,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3628 )
3629 self.assertEqual(architecture, form.cleaned_data["architecture"])
3630
3631- def test__empty(self):
3632+ def test_empty(self):
3633 # Empty values in the list of MAC addresses are simply ignored.
3634 form = MachineWithMACAddressesForm(
3635 data=self.make_params(
3636@@ -160,7 +160,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3637
3638 self.assertTrue(form.is_valid())
3639
3640- def test__mac_address_is_required(self):
3641+ def test_mac_address_is_required(self):
3642 form = MachineWithMACAddressesForm(
3643 data=self.make_params(mac_addresses=[])
3644 )
3645@@ -171,7 +171,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3646 ["This field is required."], form.errors["mac_addresses"]
3647 )
3648
3649- def test__no_architecture_or_mac_addresses_is_ok_for_ipmi(self):
3650+ def test_no_architecture_or_mac_addresses_is_ok_for_ipmi(self):
3651 # No architecture or MAC addresses is okay for IPMI power types.
3652 params = self.make_params(mac_addresses=[])
3653 params["architecture"] = None
3654@@ -179,7 +179,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase):
3655 form = MachineWithMACAddressesForm(data=params)
3656 self.assertTrue(form.is_valid())
3657
3658- def test__save(self):
3659+ def test_save(self):
3660 macs = ["aa:bb:cc:dd:ee:ff", "9a:bb:c3:33:e5:7f"]
3661 form = MachineWithMACAddressesForm(
3662 data=self.make_params(mac_addresses=macs)
3663diff --git a/src/maasserver/forms/tests/test_notification.py b/src/maasserver/forms/tests/test_notification.py
3664index cb2196e..632d1f8 100644
3665--- a/src/maasserver/forms/tests/test_notification.py
3666+++ b/src/maasserver/forms/tests/test_notification.py
3667@@ -18,7 +18,7 @@ categories = "info", "success", "warning", "error"
3668
3669
3670 class TestNotificationForm(MAASServerTestCase):
3671- def test__notification_can_be_created_with_just_message(self):
3672+ def test_notification_can_be_created_with_just_message(self):
3673 notification_message = factory.make_name("message")
3674 form = NotificationForm({"message": notification_message})
3675 self.assertTrue(form.is_valid(), form.errors)
3676@@ -36,7 +36,7 @@ class TestNotificationForm(MAASServerTestCase):
3677 ),
3678 )
3679
3680- def test__notification_can_be_created_with_empty_fields(self):
3681+ def test_notification_can_be_created_with_empty_fields(self):
3682 notification_message = factory.make_name("message")
3683 form = NotificationForm(
3684 {
3685@@ -65,7 +65,7 @@ class TestNotificationForm(MAASServerTestCase):
3686 ),
3687 )
3688
3689- def test__notification_can_be_created_with_all_fields(self):
3690+ def test_notification_can_be_created_with_all_fields(self):
3691 user = factory.make_User()
3692 data = {
3693 "ident": factory.make_name("ident"),
3694@@ -92,7 +92,7 @@ class TestNotificationForm(MAASServerTestCase):
3695 )
3696 self.assertThat(notification, MatchesStructure.byEquality(**expected))
3697
3698- def test__notification_can_be_updated(self):
3699+ def test_notification_can_be_updated(self):
3700 notification = factory.make_Notification()
3701 user = factory.make_User()
3702 data = {
3703diff --git a/src/maasserver/forms/tests/test_packagerepository.py b/src/maasserver/forms/tests/test_packagerepository.py
3704index 8b3b22f..549f73b 100644
3705--- a/src/maasserver/forms/tests/test_packagerepository.py
3706+++ b/src/maasserver/forms/tests/test_packagerepository.py
3707@@ -48,7 +48,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3708 }
3709 return params
3710
3711- def test__creates_package_repository(self):
3712+ def test_creates_package_repository(self):
3713 repo = factory.make_PackageRepository()
3714 params = self.make_valid_repo_params(repo)
3715 form = PackageRepositoryForm(data=params)
3716@@ -65,17 +65,17 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3717 "Created package repository '%s'." % package_repository.name,
3718 )
3719
3720- def test__create_package_repository_requires_name(self):
3721+ def test_create_package_repository_requires_name(self):
3722 form = PackageRepositoryForm(
3723 data={"url": factory.make_url(scheme="http")}
3724 )
3725 self.assertFalse(form.is_valid())
3726
3727- def test__create_package_repository_requires_url(self):
3728+ def test_create_package_repository_requires_url(self):
3729 form = PackageRepositoryForm(data={"name": factory.make_name("name")})
3730 self.assertFalse(form.is_valid())
3731
3732- def test__default_repository_cannot_be_disabled(self):
3733+ def test_default_repository_cannot_be_disabled(self):
3734 repo = factory.make_PackageRepository(default=True)
3735 params = self.make_valid_repo_params(repo)
3736 params["enabled"] = False
3737@@ -83,7 +83,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3738 self.assertFalse(form.is_valid())
3739 self.assertRaises(ValidationError, form.clean)
3740
3741- def test__create_package_repository_defaults_to_enabled(self):
3742+ def test_create_package_repository_defaults_to_enabled(self):
3743 repo = factory.make_PackageRepository()
3744 params = self.make_valid_repo_params(repo)
3745 del params["enabled"]
3746@@ -96,7 +96,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3747 self.assertAttributes(package_repository, params)
3748 self.assertTrue(package_repository.enabled)
3749
3750- def test__fail_validation_on_create_cleans_url(self):
3751+ def test_fail_validation_on_create_cleans_url(self):
3752 PackageRepository.objects.all().delete()
3753 repo = factory.make_PackageRepository()
3754 params = self.make_valid_repo_params(repo)
3755@@ -106,7 +106,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3756 self.assertFalse(form.is_valid())
3757 self.assertItemsEqual([], PackageRepository.objects.all())
3758
3759- def test__updates_name(self):
3760+ def test_updates_name(self):
3761 package_repository = factory.make_PackageRepository()
3762 name = factory.make_name("name")
3763 form = PackageRepositoryForm(
3764@@ -125,7 +125,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3765 "Updated package repository '%s'." % (package_repository.name),
3766 )
3767
3768- def test__updates_url(self):
3769+ def test_updates_url(self):
3770 package_repository = factory.make_PackageRepository()
3771 url = factory.make_url(scheme="http")
3772 form = PackageRepositoryForm(
3773@@ -138,7 +138,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3774 package_repository = form.save(endpoint, request)
3775 self.assertEqual(url, package_repository.url)
3776
3777- def test__updates_enabled(self):
3778+ def test_updates_enabled(self):
3779 package_repository = factory.make_PackageRepository()
3780 enabled = not package_repository.enabled
3781 form = PackageRepositoryForm(
3782@@ -151,7 +151,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3783 package_repository = form.save(endpoint, request)
3784 self.assertEqual(enabled, package_repository.enabled)
3785
3786- def test__updates_arches(self):
3787+ def test_updates_arches(self):
3788 package_repository = factory.make_PackageRepository()
3789 arch1 = random.choice(PackageRepository.KNOWN_ARCHES)
3790 arch2 = random.choice(PackageRepository.KNOWN_ARCHES)
3791@@ -166,7 +166,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3792 package_repository = form.save(endpoint, request)
3793 self.assertEqual([arch1, arch2, arch3], package_repository.arches)
3794
3795- def test__update_failure_doesnt_delete_url(self):
3796+ def test_update_failure_doesnt_delete_url(self):
3797 package_repository = factory.make_PackageRepository()
3798 url = package_repository.url
3799 form = PackageRepositoryForm(
3800@@ -176,7 +176,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3801 self.assertFalse(form.is_valid())
3802 self.assertEquals(url, reload_object(package_repository).url)
3803
3804- def test__creates_package_repository_defaults_main_arches(self):
3805+ def test_creates_package_repository_defaults_main_arches(self):
3806 repo = factory.make_PackageRepository(arches=[])
3807 params = self.make_valid_repo_params(repo)
3808 del params["arches"]
3809@@ -191,7 +191,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3810 package_repository.arches, PackageRepository.MAIN_ARCHES
3811 )
3812
3813- def test__arches_validation(self):
3814+ def test_arches_validation(self):
3815 package_repository = factory.make_PackageRepository()
3816 form = PackageRepositoryForm(
3817 instance=package_repository, data={"arches": ["i286"]}
3818@@ -208,7 +208,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3819 endpoint = factory.pick_choice(ENDPOINT_CHOICES)
3820 self.assertRaises(ValueError, form.save, endpoint, request)
3821
3822- def test__arches_comma_cleaning(self):
3823+ def test_arches_comma_cleaning(self):
3824 package_repository = factory.make_PackageRepository()
3825 form = PackageRepositoryForm(
3826 instance=package_repository, data={"arches": ["i386,armhf"]}
3827@@ -229,7 +229,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3828 repo = form.save(endpoint, request)
3829 self.assertItemsEqual(["i386"], repo.arches)
3830
3831- def test__distribution_comma_cleaning(self):
3832+ def test_distribution_comma_cleaning(self):
3833 package_repository = factory.make_PackageRepository()
3834 form = PackageRepositoryForm(
3835 instance=package_repository, data={"distributions": ["val1,val2"]}
3836@@ -250,7 +250,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3837 repo = form.save(endpoint, request)
3838 self.assertItemsEqual(["val1"], repo.distributions)
3839
3840- def test__disabled_pocket_comma_cleaning(self):
3841+ def test_disabled_pocket_comma_cleaning(self):
3842 package_repository = factory.make_PackageRepository()
3843 form = PackageRepositoryForm(
3844 instance=package_repository,
3845@@ -273,7 +273,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3846 repo = form.save(endpoint, request)
3847 self.assertItemsEqual(["updates"], repo.disabled_pockets)
3848
3849- def test__disabled_component_comma_cleaning(self):
3850+ def test_disabled_component_comma_cleaning(self):
3851 package_repository = factory.make_PackageRepository(
3852 default=True, components=[]
3853 )
3854@@ -303,7 +303,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3855 repo = form.save(endpoint, request)
3856 self.assertItemsEqual(["universe"], repo.disabled_components)
3857
3858- def test__component_comma_cleaning(self):
3859+ def test_component_comma_cleaning(self):
3860 package_repository = factory.make_PackageRepository()
3861 form = PackageRepositoryForm(
3862 instance=package_repository, data={"components": ["val1,val2"]}
3863@@ -324,7 +324,7 @@ class TestPackageRepositoryForm(MAASServerTestCase):
3864 repo = form.save(endpoint, request)
3865 self.assertItemsEqual(["val1"], repo.components)
3866
3867- def test__updates_disable_sources(self):
3868+ def test_updates_disable_sources(self):
3869 package_repository = factory.make_PackageRepository()
3870 form = PackageRepositoryForm(
3871 instance=package_repository, data={"disable_sources": True}
3872diff --git a/src/maasserver/forms/tests/test_parameters.py b/src/maasserver/forms/tests/test_parameters.py
3873index a41f24f..d6b7884 100644
3874--- a/src/maasserver/forms/tests/test_parameters.py
3875+++ b/src/maasserver/forms/tests/test_parameters.py
3876@@ -43,14 +43,14 @@ class TestParametersForm(MAASServerTestCase):
3877 ]
3878 )
3879
3880- def test__validates_parameters_is_dict(self):
3881+ def test_validates_parameters_is_dict(self):
3882 form = ParametersForm(data=[factory.make_name() for _ in range(3)])
3883 self.assertFalse(form.is_valid())
3884 self.assertDictEqual(
3885 {"parameters": ["Must be a dictionary"]}, form.errors
3886 )
3887
3888- def test__validates_parameter_is_str(self):
3889+ def test_validates_parameter_is_str(self):
3890 param = random.randint(0, 1000)
3891 form = ParametersForm(data={param: {"type": "storage"}})
3892 self.assertFalse(form.is_valid())
3893@@ -59,7 +59,7 @@ class TestParametersForm(MAASServerTestCase):
3894 form.errors,
3895 )
3896
3897- def test__validates_parameter_field_type_is_str(self):
3898+ def test_validates_parameter_field_type_is_str(self):
3899 param_type = random.randint(0, 1000)
3900 form = ParametersForm(
3901 data={"storage": {"type": param_type, "required": False}}
3902@@ -70,7 +70,7 @@ class TestParametersForm(MAASServerTestCase):
3903 form.errors,
3904 )
3905
3906- def test__validates_parameter_field_min_is_int(self):
3907+ def test_validates_parameter_field_min_is_int(self):
3908 param_min = factory.make_name("min")
3909 form = ParametersForm(
3910 data={"runtime": {"type": "runtime", "min": param_min}}
3911@@ -81,7 +81,7 @@ class TestParametersForm(MAASServerTestCase):
3912 form.errors,
3913 )
3914
3915- def test__validates_parameter_field_max_is_int(self):
3916+ def test_validates_parameter_field_max_is_int(self):
3917 param_max = factory.make_name("max")
3918 form = ParametersForm(
3919 data={"runtime": {"type": "runtime", "max": param_max}}
3920@@ -92,7 +92,7 @@ class TestParametersForm(MAASServerTestCase):
3921 form.errors,
3922 )
3923
3924- def test__validates_parameter_field_title_is_str(self):
3925+ def test_validates_parameter_field_title_is_str(self):
3926 form = ParametersForm(
3927 data={"storage": {"type": "storage", "title": True}}
3928 )
3929@@ -101,7 +101,7 @@ class TestParametersForm(MAASServerTestCase):
3930 {"parameters": ["True: title must be a string"]}, form.errors
3931 )
3932
3933- def test__validates_parameter_field_description_is_str(self):
3934+ def test_validates_parameter_field_description_is_str(self):
3935 form = ParametersForm(
3936 data={"storage": {"type": "storage", "description": True}}
3937 )
3938@@ -110,7 +110,7 @@ class TestParametersForm(MAASServerTestCase):
3939 {"parameters": ["True: description must be a string"]}, form.errors
3940 )
3941
3942- def test__validates_parameter_field_argument_format_is_str(self):
3943+ def test_validates_parameter_field_argument_format_is_str(self):
3944 form = ParametersForm(
3945 data={"storage": {"type": "storage", "argument_format": []}}
3946 )
3947@@ -120,7 +120,7 @@ class TestParametersForm(MAASServerTestCase):
3948 form.errors,
3949 )
3950
3951- def test__validates_parameter_field_argument_format_for_storage_type(self):
3952+ def test_validates_parameter_field_argument_format_for_storage_type(self):
3953 form = ParametersForm(
3954 data={
3955 "storage": {
3956@@ -140,7 +140,7 @@ class TestParametersForm(MAASServerTestCase):
3957 form.errors,
3958 )
3959
3960- def test__validates_parameter_field_argument_format_for_interface(self):
3961+ def test_validates_parameter_field_argument_format_for_interface(self):
3962 form = ParametersForm(
3963 data={
3964 "storage": {
3965@@ -160,7 +160,7 @@ class TestParametersForm(MAASServerTestCase):
3966 form.errors,
3967 )
3968
3969- def test__validates_parameter_field_argument_format_non_runtime_type(self):
3970+ def test_validates_parameter_field_argument_format_non_runtime_type(self):
3971 form = ParametersForm(
3972 data={
3973 "runtime": {
3974@@ -175,7 +175,7 @@ class TestParametersForm(MAASServerTestCase):
3975 form.errors,
3976 )
3977
3978- def test__validates_parameter_field_default_is_str(self):
3979+ def test_validates_parameter_field_default_is_str(self):
3980 param_default = random.randint(0, 1000)
3981 form = ParametersForm(
3982 data={"storage": {"type": "storage", "default": param_default}}
3983@@ -186,7 +186,7 @@ class TestParametersForm(MAASServerTestCase):
3984 form.errors,
3985 )
3986
3987- def test__validates_parameter_field_required_is_boolean(self):
3988+ def test_validates_parameter_field_required_is_boolean(self):
3989 param_required = factory.make_name("required")
3990 form = ParametersForm(
3991 data={"storage": {"type": "storage", "required": param_required}}
3992@@ -201,7 +201,7 @@ class TestParametersForm(MAASServerTestCase):
3993 form.errors,
3994 )
3995
3996- def test__validates_parameter_field_allow_list_is_boolean(self):
3997+ def test_validates_parameter_field_allow_list_is_boolean(self):
3998 param_allow_list = factory.make_name("allow_list")
3999 form = ParametersForm(
4000 data={"url": {"type": "url", "allow_list": param_allow_list}}
4001@@ -216,7 +216,7 @@ class TestParametersForm(MAASServerTestCase):
4002 form.errors,
4003 )
4004
4005- def test__validates_parameter_field_allow_list_only_for_url(self):
4006+ def test_validates_parameter_field_allow_list_only_for_url(self):
4007 ptype = random.choice(["storage", "interface", "runtime"])
4008 form = ParametersForm(
4009 data={ptype: {"type": ptype, "allow_list": factory.pick_bool()}}
4010@@ -227,7 +227,7 @@ class TestParametersForm(MAASServerTestCase):
4011 form.errors,
4012 )
4013
4014- def test__checks_for_supported_parameter_types(self):
4015+ def test_checks_for_supported_parameter_types(self):
4016 form = ParametersForm(
4017 data={
4018 "storage": {"type": "storage"},
4019@@ -238,7 +238,7 @@ class TestParametersForm(MAASServerTestCase):
4020 )
4021 self.assertTrue(form.is_valid())
4022
4023- def test__validates_against_unsupported_parameter_types(self):
4024+ def test_validates_against_unsupported_parameter_types(self):
4025 unsupported_type = factory.make_name("unsupported")
4026 form = ParametersForm(data={"storage": {"type": unsupported_type}})
4027 self.assertFalse(form.is_valid())
4028@@ -252,14 +252,14 @@ class TestParametersForm(MAASServerTestCase):
4029 form.errors,
4030 )
4031
4032- def test__validates_unsupported_parameter_types_if_not_required(self):
4033+ def test_validates_unsupported_parameter_types_if_not_required(self):
4034 unsupported_type = factory.make_name("unsupported")
4035 form = ParametersForm(
4036 data={"storage": {"type": unsupported_type, "required": False}}
4037 )
4038 self.assertTrue(form.is_valid())
4039
4040- def test__validates_storage_interface_type_has_no_min_or_max(self):
4041+ def test_validates_storage_interface_type_has_no_min_or_max(self):
4042 ptype = random.choice(["storage", "interface"])
4043 form = ParametersForm(
4044 data={ptype: {"type": ptype, "min": random.randint(0, 1000)}}
4045@@ -269,7 +269,7 @@ class TestParametersForm(MAASServerTestCase):
4046 {"parameters": ["Type doesn't support min or max"]}, form.errors
4047 )
4048
4049- def test__validates_runtime_type_min_greater_than_zero(self):
4050+ def test_validates_runtime_type_min_greater_than_zero(self):
4051 form = ParametersForm(
4052 data={
4053 "runtime": {"type": "runtime", "min": random.randint(-100, -1)}
4054@@ -281,7 +281,7 @@ class TestParametersForm(MAASServerTestCase):
4055 form.errors,
4056 )
4057
4058- def test__validates_min_less_than_max(self):
4059+ def test_validates_min_less_than_max(self):
4060 form = ParametersForm(
4061 data={
4062 "runtime": {
4063@@ -296,7 +296,7 @@ class TestParametersForm(MAASServerTestCase):
4064 {"parameters": ["min must be less than max"]}, form.errors
4065 )
4066
4067- def test__input_errors_on_unknown_paramater(self):
4068+ def test_input_errors_on_unknown_paramater(self):
4069 script = factory.make_Script()
4070 bad_param = factory.make_name("bad_param")
4071 form = ParametersForm(
4072@@ -314,7 +314,7 @@ class TestParametersForm(MAASServerTestCase):
4073 form.errors,
4074 )
4075
4076- def test__input_runtime(self):
4077+ def test_input_runtime(self):
4078 script = factory.make_Script(
4079 parameters={"runtime": {"type": "runtime"}}
4080 )
4081@@ -329,7 +329,7 @@ class TestParametersForm(MAASServerTestCase):
4082 form.cleaned_data["input"][0],
4083 )
4084
4085- def test__input_runtime_gets_default_from_script_timeout(self):
4086+ def test_input_runtime_gets_default_from_script_timeout(self):
4087 script = factory.make_Script(
4088 parameters={"runtime": {"type": "runtime"}}
4089 )
4090@@ -341,7 +341,7 @@ class TestParametersForm(MAASServerTestCase):
4091 form.cleaned_data["input"][0],
4092 )
4093
4094- def test__input_runtime_requires_int(self):
4095+ def test_input_runtime_requires_int(self):
4096 script = factory.make_Script(
4097 parameters={"runtime": {"type": "runtime"}}
4098 )
4099@@ -353,7 +353,7 @@ class TestParametersForm(MAASServerTestCase):
4100 self.assertFalse(form.is_valid())
4101 self.assertDictEqual({"runtime": ["Must be an int"]}, form.errors)
4102
4103- def test__input_runtime_validates_required(self):
4104+ def test_input_runtime_validates_required(self):
4105 script = factory.make_Script(
4106 parameters={
4107 "runtime": {
4108@@ -367,7 +367,7 @@ class TestParametersForm(MAASServerTestCase):
4109 self.assertFalse(form.is_valid())
4110 self.assertDictEqual({"runtime": ["Field is required"]}, form.errors)
4111
4112- def test__input_runtime_validates_min(self):
4113+ def test_input_runtime_validates_min(self):
4114 min_runtime = random.randint(1, 100)
4115 script = factory.make_Script(
4116 parameters={"runtime": {"type": "runtime", "min": min_runtime}}
4117@@ -381,7 +381,7 @@ class TestParametersForm(MAASServerTestCase):
4118 {"runtime": ["Must be greater than %s" % min_runtime]}, form.errors
4119 )
4120
4121- def test__input_runtime_validates_max(self):
4122+ def test_input_runtime_validates_max(self):
4123 max_runtime = random.randint(0, 100)
4124 script = factory.make_Script(
4125 parameters={"runtime": {"type": "runtime", "max": max_runtime}}
4126@@ -395,7 +395,7 @@ class TestParametersForm(MAASServerTestCase):
4127 {"runtime": ["Must be less than %s" % max_runtime]}, form.errors
4128 )
4129
4130- def test__input_storage_validates_required(self):
4131+ def test_input_storage_validates_required(self):
4132 script = factory.make_Script(
4133 parameters={
4134 "storage": {
4135@@ -409,7 +409,7 @@ class TestParametersForm(MAASServerTestCase):
4136 self.assertFalse(form.is_valid())
4137 self.assertDictEqual({"storage": ["Field is required"]}, form.errors)
4138
4139- def test__input_storage_defaults_all_with_no_disks(self):
4140+ def test_input_storage_defaults_all_with_no_disks(self):
4141 script = factory.make_Script(
4142 parameters={
4143 "runtime": {"type": "runtime"},
4144@@ -434,7 +434,7 @@ class TestParametersForm(MAASServerTestCase):
4145 form.cleaned_data["input"][0],
4146 )
4147
4148- def test__input_storage_all(self):
4149+ def test_input_storage_all(self):
4150 node = factory.make_Node()
4151 for _ in range(3):
4152 factory.make_PhysicalBlockDevice(node=node)
4153@@ -466,7 +466,7 @@ class TestParametersForm(MAASServerTestCase):
4154 i["storage"]["value"],
4155 )
4156
4157- def test__input_storage_id(self):
4158+ def test_input_storage_id(self):
4159 node = factory.make_Node()
4160 for _ in range(3):
4161 factory.make_PhysicalBlockDevice(node=node)
4162@@ -497,7 +497,7 @@ class TestParametersForm(MAASServerTestCase):
4163 input[0]["storage"]["value"],
4164 )
4165
4166- def test__input_storage_id_errors(self):
4167+ def test_input_storage_id_errors(self):
4168 node = factory.make_Node()
4169 for _ in range(3):
4170 factory.make_PhysicalBlockDevice(node=node)
4171@@ -517,7 +517,7 @@ class TestParametersForm(MAASServerTestCase):
4172 {"storage": ["Physical block id does not exist"]}, form.errors
4173 )
4174
4175- def test__input_storage_list(self):
4176+ def test_input_storage_list(self):
4177 node = factory.make_Node()
4178 for _ in range(10):
4179 factory.make_PhysicalBlockDevice(node=node)
4180@@ -560,7 +560,7 @@ class TestParametersForm(MAASServerTestCase):
4181 i["storage"]["value"],
4182 )
4183
4184- def test__input_storage_name_errors(self):
4185+ def test_input_storage_name_errors(self):
4186 node = factory.make_Node()
4187 for _ in range(3):
4188 factory.make_PhysicalBlockDevice(node=node)
4189@@ -586,7 +586,7 @@ class TestParametersForm(MAASServerTestCase):
4190 form.errors,
4191 )
4192
4193- def test__input_interface_validates_required(self):
4194+ def test_input_interface_validates_required(self):
4195 script = factory.make_Script(
4196 parameters={
4197 "interface": {
4198@@ -600,7 +600,7 @@ class TestParametersForm(MAASServerTestCase):
4199 self.assertFalse(form.is_valid())
4200 self.assertDictEqual({"interface": ["Field is required"]}, form.errors)
4201
4202- def test__input_interface_defaults_all_with_no_nics(self):
4203+ def test_input_interface_defaults_all_with_no_nics(self):
4204 script = factory.make_Script(
4205 parameters={"interface": {"type": "interface"}}
4206 )
4207@@ -614,7 +614,7 @@ class TestParametersForm(MAASServerTestCase):
4208 form.cleaned_data["input"][0],
4209 )
4210
4211- def test__input_interface_defaults_boot_interface_during_commiss(self):
4212+ def test_input_interface_defaults_boot_interface_during_commiss(self):
4213 node = factory.make_Node_with_Interface_on_Subnet(
4214 status=NODE_STATUS.COMMISSIONING
4215 )
4216@@ -635,7 +635,7 @@ class TestParametersForm(MAASServerTestCase):
4217 form.cleaned_data["input"][0]["interface"]["value"],
4218 )
4219
4220- def test__input_interface_all(self):
4221+ def test_input_interface_all(self):
4222 node = factory.make_Node()
4223 subnet = factory.make_Subnet()
4224 usable_interfaces = [
4225@@ -672,7 +672,7 @@ class TestParametersForm(MAASServerTestCase):
4226 i["interface"]["value"],
4227 )
4228
4229- def test__input_interface_all_only_includes_children(self):
4230+ def test_input_interface_all_only_includes_children(self):
4231 node = factory.make_Node(interface=False)
4232 subnet = factory.make_Subnet()
4233 bond = factory.make_Interface(
4234@@ -701,7 +701,7 @@ class TestParametersForm(MAASServerTestCase):
4235 input[0]["interface"]["value"],
4236 )
4237
4238- def test__input_interface_id(self):
4239+ def test_input_interface_id(self):
4240 node = factory.make_Node()
4241 subnet = factory.make_Subnet()
4242 for _ in range(3):
4243@@ -731,7 +731,7 @@ class TestParametersForm(MAASServerTestCase):
4244 input[0]["interface"]["value"],
4245 )
4246
4247- def test__input_interface_id_errors(self):
4248+ def test_input_interface_id_errors(self):
4249 node = factory.make_Node()
4250 for _ in range(3):
4251 factory.make_Interface(node=node)
4252@@ -748,7 +748,7 @@ class TestParametersForm(MAASServerTestCase):
4253 {"interface": ["Interface id does not exist"]}, form.errors
4254 )
4255
4256- def test__input_interface_id_errors_on_parent(self):
4257+ def test_input_interface_id_errors_on_parent(self):
4258 node = factory.make_Node(interface=False)
4259 parents = [factory.make_Interface(node=node) for _ in range(2)]
4260 factory.make_Interface(
4261@@ -767,7 +767,7 @@ class TestParametersForm(MAASServerTestCase):
4262 {"interface": ["Interface id does not exist"]}, form.errors
4263 )
4264
4265- def test__input_interface_id_errors_on_unconfigured_or_disabled(self):
4266+ def test_input_interface_id_errors_on_unconfigured_or_disabled(self):
4267 node = factory.make_Node()
4268 bad_interface = random.choice(
4269 [
4270@@ -783,7 +783,7 @@ class TestParametersForm(MAASServerTestCase):
4271 )
4272 self.assertFalse(form.is_valid())
4273
4274- def test__input_interface_list(self):
4275+ def test_input_interface_list(self):
4276 node = factory.make_Node()
4277 subnet = factory.make_Subnet()
4278 for _ in range(10):
4279@@ -826,7 +826,7 @@ class TestParametersForm(MAASServerTestCase):
4280 i["interface"]["value"],
4281 )
4282
4283- def test__input_interface_name_errors(self):
4284+ def test_input_interface_name_errors(self):
4285 node = factory.make_Node()
4286 for _ in range(3):
4287 factory.make_Interface(node=node)
4288@@ -849,7 +849,7 @@ class TestParametersForm(MAASServerTestCase):
4289 form.errors,
4290 )
4291
4292- def test__input_interface_name_errors_on_parent(self):
4293+ def test_input_interface_name_errors_on_parent(self):
4294 node = factory.make_Node(interface=False)
4295 parents = [factory.make_Interface(node=node) for _ in range(2)]
4296 factory.make_Interface(
4297@@ -874,7 +874,7 @@ class TestParametersForm(MAASServerTestCase):
4298 form.errors,
4299 )
4300
4301- def test__input_interface_name_errors_on_unconfigured_or_disabled(self):
4302+ def test_input_interface_name_errors_on_unconfigured_or_disabled(self):
4303 node = factory.make_Node()
4304 bad_interface = random.choice(
4305 [
4306@@ -890,7 +890,7 @@ class TestParametersForm(MAASServerTestCase):
4307 )
4308 self.assertFalse(form.is_valid())
4309
4310- def test__input_url_validates_required(self):
4311+ def test_input_url_validates_required(self):
4312 script = factory.make_Script(
4313 parameters={"url": {"type": "url", "required": True}}
4314 )
4315@@ -898,13 +898,13 @@ class TestParametersForm(MAASServerTestCase):
4316 self.assertFalse(form.is_valid())
4317 self.assertDictEqual({"url": ["Field is required"]}, form.errors)
4318
4319- def test__input_url_defaults_empty_with_no_input(self):
4320+ def test_input_url_defaults_empty_with_no_input(self):
4321 script = factory.make_Script(parameters={"url": {"type": "url"}})
4322 form = ParametersForm(data={}, script=script, node=factory.make_Node())
4323 self.assertTrue(form.is_valid())
4324 self.assertDictEqual({}, form.cleaned_data["input"][0])
4325
4326- def test__input_url_allows_ipv4(self):
4327+ def test_input_url_allows_ipv4(self):
4328 script = factory.make_Script(parameters={"url": {"type": "url"}})
4329 input = factory.make_ipv4_address()
4330 form = ParametersForm(
4331@@ -916,7 +916,7 @@ class TestParametersForm(MAASServerTestCase):
4332 form.cleaned_data["input"][0],
4333 )
4334
4335- def test__input_url_allows_ipv4_url(self):
4336+ def test_input_url_allows_ipv4_url(self):
4337 script = factory.make_Script(parameters={"url": {"type": "url"}})
4338 input = "%s://%s:%d/%s" % (
4339 self.pick_scheme(),
4340@@ -933,7 +933,7 @@ class TestParametersForm(MAASServerTestCase):
4341 form.cleaned_data["input"][0],
4342 )
4343
4344- def test__input_url_allows_ipv6(self):
4345+ def test_input_url_allows_ipv6(self):
4346 script = factory.make_Script(parameters={"url": {"type": "url"}})
4347 input = factory.make_ipv6_address()
4348 form = ParametersForm(
4349@@ -945,7 +945,7 @@ class TestParametersForm(MAASServerTestCase):
4350 form.cleaned_data["input"][0],
4351 )
4352
4353- def test__input_url_allows_ipv6_url(self):
4354+ def test_input_url_allows_ipv6_url(self):
4355 script = factory.make_Script(parameters={"url": {"type": "url"}})
4356 input = "%s://[%s]:%d/%s" % (
4357 self.pick_scheme(),
4358@@ -962,7 +962,7 @@ class TestParametersForm(MAASServerTestCase):
4359 form.cleaned_data["input"][0],
4360 )
4361
4362- def test__input_url_allows_hostname(self):
4363+ def test_input_url_allows_hostname(self):
4364 script = factory.make_Script(parameters={"url": {"type": "url"}})
4365 input = factory.make_hostname()
4366 form = ParametersForm(
4367@@ -974,7 +974,7 @@ class TestParametersForm(MAASServerTestCase):
4368 form.cleaned_data["input"][0],
4369 )
4370
4371- def test__input_url_allows_hostname_url(self):
4372+ def test_input_url_allows_hostname_url(self):
4373 script = factory.make_Script(parameters={"url": {"type": "url"}})
4374 input = factory.make_url(scheme=self.pick_scheme())
4375 form = ParametersForm(
4376@@ -986,7 +986,7 @@ class TestParametersForm(MAASServerTestCase):
4377 form.cleaned_data["input"][0],
4378 )
4379
4380- def test__input_url_allows_list(self):
4381+ def test_input_url_allows_list(self):
4382 script = factory.make_Script(
4383 parameters={"url": {"type": "url", "allow_list": True}}
4384 )
4385@@ -1021,7 +1021,7 @@ class TestParametersForm(MAASServerTestCase):
4386 form.cleaned_data["input"][0],
4387 )
4388
4389- def test__input_url_list_requires_allow_list(self):
4390+ def test_input_url_list_requires_allow_list(self):
4391 script = factory.make_Script(parameters={"url": {"type": "url"}})
4392 inputs = ",".join(
4393 [
4394@@ -1051,7 +1051,7 @@ class TestParametersForm(MAASServerTestCase):
4395 self.assertFalse(form.is_valid())
4396 self.assertDictEqual({"url": ["Invalid URL"]}, form.errors)
4397
4398- def test__input_url_list_errors(self):
4399+ def test_input_url_list_errors(self):
4400 script = factory.make_Script(parameters={"url": {"type": "url"}})
4401 form = ParametersForm(
4402 data={"url": factory.make_name("bad!")},
4403diff --git a/src/maasserver/forms/tests/test_pods.py b/src/maasserver/forms/tests/test_pods.py
4404index 10828ad..2a349de 100644
4405--- a/src/maasserver/forms/tests/test_pods.py
4406+++ b/src/maasserver/forms/tests/test_pods.py
4407@@ -917,18 +917,18 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4408 )
4409 return composed_machine, pod_hints
4410
4411- def test__requires_request_kwarg(self):
4412+ def test_requires_request_kwarg(self):
4413 error = self.assertRaises(ValueError, ComposeMachineForm)
4414 self.assertEqual("'request' kwargs is required.", str(error))
4415
4416- def test__requires_pod_kwarg(self):
4417+ def test_requires_pod_kwarg(self):
4418 request = MagicMock()
4419 error = self.assertRaises(
4420 ValueError, ComposeMachineForm, request=request
4421 )
4422 self.assertEqual("'pod' kwargs is required.", str(error))
4423
4424- def test__sets_up_fields_based_on_pod(self):
4425+ def test_sets_up_fields_based_on_pod(self):
4426 request = MagicMock()
4427 pod = make_pod_with_hints()
4428 form = ComposeMachineForm(request=request, pod=pod)
4429@@ -995,7 +995,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4430 ),
4431 )
4432
4433- def test__sets_up_fields_based_on_pod_no_max_cpu_speed(self):
4434+ def test_sets_up_fields_based_on_pod_no_max_cpu_speed(self):
4435 request = MagicMock()
4436 pod = make_pod_with_hints()
4437 pod.hints.cpu_speed = 0
4438@@ -1014,7 +1014,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4439 ),
4440 )
4441
4442- def test__sets_up_pool_default(self):
4443+ def test_sets_up_pool_default(self):
4444 request = MagicMock()
4445 pod = make_pod_with_hints()
4446 pool = factory.make_ResourcePool()
4447@@ -1023,7 +1023,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4448 form = ComposeMachineForm(request=request, pod=pod)
4449 self.assertEqual(pool, form.initial["pool"])
4450
4451- def test__get_machine_uses_all_initial_values(self):
4452+ def test_get_machine_uses_all_initial_values(self):
4453 request = MagicMock()
4454 pod = make_pod_with_hints()
4455 form = ComposeMachineForm(data={}, request=request, pod=pod)
4456@@ -1060,7 +1060,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4457 ),
4458 )
4459
4460- def test__get_machine_uses_passed_values(self):
4461+ def test_get_machine_uses_passed_values(self):
4462 request = MagicMock()
4463 pod = make_pod_with_hints()
4464 architecture = random.choice(pod.architectures)
4465@@ -1127,7 +1127,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4466 ),
4467 )
4468
4469- def test__get_machine_handles_no_tags_in_storage(self):
4470+ def test_get_machine_handles_no_tags_in_storage(self):
4471 request = MagicMock()
4472 pod = make_pod_with_hints()
4473 disk_1 = random.randint(8, 16) * (1000 ** 3)
4474@@ -1168,7 +1168,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4475 ),
4476 )
4477
4478- def test__get_machine_with_multiple_disks_fails_for_lxd_pods(self):
4479+ def test_get_machine_with_multiple_disks_fails_for_lxd_pods(self):
4480 request = MagicMock()
4481 pod_host = factory.make_Machine_with_Interface_on_Subnet()
4482 pod_host.boot_interface.vlan.dhcp_on = False
4483@@ -1191,7 +1191,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4484 ):
4485 form.get_requested_machine(make_known_host_interfaces(pod))
4486
4487- def test__get_machine_with_interfaces_fails_no_dhcp_for_vlan(self):
4488+ def test_get_machine_with_interfaces_fails_no_dhcp_for_vlan(self):
4489 request = MagicMock()
4490 pod_host = factory.make_Machine_with_Interface_on_Subnet()
4491 pod_host.boot_interface.vlan.dhcp_on = False
4492@@ -1209,7 +1209,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4493 ):
4494 form.get_requested_machine(make_known_host_interfaces(pod))
4495
4496- def test__get_machine_with_interfaces_fails_for_no_matching_network(self):
4497+ def test_get_machine_with_interfaces_fails_for_no_matching_network(self):
4498 request = MagicMock()
4499 pod = make_pod_with_hints(with_host=True)
4500 # Make a subnet that won't match the host via the constraint.
4501@@ -1224,7 +1224,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4502 ):
4503 form.get_requested_machine(make_known_host_interfaces(pod))
4504
4505- def test__get_machine_with_interfaces_by_subnet(self):
4506+ def test_get_machine_with_interfaces_by_subnet(self):
4507 request = MagicMock()
4508 pod_host = factory.make_Machine_with_Interface_on_Subnet()
4509 space = factory.make_Space("dmz")
4510@@ -1270,7 +1270,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4511 ),
4512 )
4513
4514- def test__get_machine_with_interfaces_with_empty_interfaces_input(self):
4515+ def test_get_machine_with_interfaces_with_empty_interfaces_input(self):
4516 request = MagicMock()
4517 host = factory.make_Machine_with_Interface_on_Subnet()
4518 space = factory.make_Space("dmz")
4519@@ -1307,7 +1307,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4520 ),
4521 )
4522
4523- def test__get_machine_with_interfaces_with_unreserved_ip(self):
4524+ def test_get_machine_with_interfaces_with_unreserved_ip(self):
4525 # Mock the RPC client.
4526 client = MagicMock()
4527 mock_getClient = self.patch(pods_module, "getClientFromIdentifiers")
4528@@ -1376,7 +1376,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4529 ),
4530 )
4531
4532- def test__get_machine_with_interfaces_by_subnet_with_default_mode(self):
4533+ def test_get_machine_with_interfaces_by_subnet_with_default_mode(self):
4534 request = MagicMock()
4535 pod_host = factory.make_Machine_with_Interface_on_Subnet()
4536 space = factory.make_Space("dmz")
4537@@ -1421,7 +1421,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4538 ),
4539 )
4540
4541- def test__get_machine_with_interfaces_by_subnet_with_empty_mode(self):
4542+ def test_get_machine_with_interfaces_by_subnet_with_empty_mode(self):
4543 request = MagicMock()
4544 pod_host = factory.make_Machine_with_Interface_on_Subnet()
4545 space = factory.make_Space("dmz")
4546@@ -1468,7 +1468,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4547 ),
4548 )
4549
4550- def test__get_machine_with_interfaces_by_space(self):
4551+ def test_get_machine_with_interfaces_by_space(self):
4552 request = MagicMock()
4553 pod_host = factory.make_Machine_with_Interface_on_Subnet()
4554 space = factory.make_Space("dmz")
4555@@ -1508,7 +1508,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4556 ),
4557 )
4558
4559- def test__get_machine_with_interfaces_by_spaces(self):
4560+ def test_get_machine_with_interfaces_by_spaces(self):
4561 request = MagicMock()
4562 pod_host = factory.make_Machine_with_Interface_on_Subnet()
4563 dmz_space = factory.make_Space("dmz")
4564@@ -1562,7 +1562,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4565 ),
4566 )
4567
4568- def test__get_machine_with_interfaces_by_subnets_bridge(self):
4569+ def test_get_machine_with_interfaces_by_subnets_bridge(self):
4570 request = MagicMock()
4571 cidr1 = "10.0.0.0/24"
4572 cidr2 = "192.168.100.0/24"
4573@@ -1623,7 +1623,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4574 ),
4575 )
4576
4577- def test__get_machine_with_interfaces_by_subnets_bond(self):
4578+ def test_get_machine_with_interfaces_by_subnets_bond(self):
4579 request = MagicMock()
4580 cidr1 = "10.0.0.0/24"
4581 cidr2 = "192.168.100.0/24"
4582@@ -1689,7 +1689,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4583 ),
4584 )
4585
4586- def test__get_machine_with_interfaces_by_subnets_bond_inside_bridge(self):
4587+ def test_get_machine_with_interfaces_by_subnets_bond_inside_bridge(self):
4588 request = MagicMock()
4589 cidr1 = "10.0.0.0/24"
4590 cidr2 = "192.168.100.0/24"
4591@@ -1762,7 +1762,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4592 ),
4593 )
4594
4595- def test__get_machine_with_interfaces_by_space_as_bridge(self):
4596+ def test_get_machine_with_interfaces_by_space_as_bridge(self):
4597 request = MagicMock()
4598 pod_host = factory.make_Machine_with_Interface_on_Subnet(
4599 status=NODE_STATUS.READY
4600@@ -1807,7 +1807,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4601 ),
4602 )
4603
4604- def test__get_machine_with_known_host_interfaces(self):
4605+ def test_get_machine_with_known_host_interfaces(self):
4606 # Need to test that it can actually find the pod host's data correctly
4607 # and that this matches what is expected.
4608 request = MagicMock()
4609@@ -1850,7 +1850,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4610 ),
4611 )
4612
4613- def test__compose_with_interfaces_with_reserved_ip_fails(self):
4614+ def test_compose_with_interfaces_with_reserved_ip_fails(self):
4615 # Mock the RPC client.
4616 client = MagicMock()
4617 mock_getClient = self.patch(pods_module, "getClientFromIdentifiers")
4618@@ -1891,7 +1891,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4619 with ExpectedException(StaticIPAddressUnavailable):
4620 form.compose()
4621
4622- def test__compose_with_interfaces_with_unreserved_ip(self):
4623+ def test_compose_with_interfaces_with_unreserved_ip(self):
4624 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4625 # Mock the RPC client.
4626 client = MagicMock()
4627@@ -1938,7 +1938,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4628 self.assertThat(ip.get_interface().node, Equals(machine))
4629 self.assertThat(mock_post_commit_do, MockCalledOnce())
4630
4631- def test__compose_with_commissioning(self):
4632+ def test_compose_with_commissioning(self):
4633 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4634 request = MagicMock()
4635 pod = make_pod_with_hints()
4636@@ -1975,7 +1975,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4637 self.assertThat(mock_commissioning, MockCalledOnce())
4638 self.assertThat(mock_post_commit_do, MockCalledOnce())
4639
4640- def test__compose_sends_default_storage_pool_id(self):
4641+ def test_compose_sends_default_storage_pool_id(self):
4642 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4643 request = MagicMock()
4644 pod = make_pod_with_hints()
4645@@ -2014,7 +2014,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4646 )
4647 self.assertThat(mock_post_commit_do, MockCalledOnce())
4648
4649- def test__compose_duplicated_hostname(self):
4650+ def test_compose_duplicated_hostname(self):
4651 factory.make_Node(hostname="test")
4652
4653 request = MagicMock()
4654@@ -2029,7 +2029,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4655 form.errors,
4656 )
4657
4658- def test__compose_hostname_with_underscore(self):
4659+ def test_compose_hostname_with_underscore(self):
4660 request = MagicMock()
4661 pod = make_pod_with_hints()
4662
4663@@ -2046,7 +2046,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4664 form.errors,
4665 )
4666
4667- def test__compose_without_commissioning(self):
4668+ def test_compose_without_commissioning(self):
4669 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4670 request = MagicMock()
4671 pod = make_pod_with_hints()
4672@@ -2085,7 +2085,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4673 self.assertThat(mock_commissioning, MockNotCalled())
4674 self.assertThat(mock_post_commit_do, MockCalledOnce())
4675
4676- def test__compose_with_skip_commissioning_passed(self):
4677+ def test_compose_with_skip_commissioning_passed(self):
4678 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4679 request = MagicMock()
4680 pod = make_pod_with_hints()
4681@@ -2122,7 +2122,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4682 self.assertThat(mock_commissioning, MockNotCalled())
4683 self.assertThat(mock_post_commit_do, MockCalledOnce())
4684
4685- def test__compose_sets_domain_and_zone(self):
4686+ def test_compose_sets_domain_and_zone(self):
4687 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4688 request = MagicMock()
4689 pod = make_pod_with_hints()
4690@@ -2161,7 +2161,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4691 )
4692 self.assertThat(mock_post_commit_do, MockCalledOnce())
4693
4694- def test__compose_sets_resource_pool(self):
4695+ def test_compose_sets_resource_pool(self):
4696 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4697 request = MagicMock()
4698 pod = make_pod_with_hints()
4699@@ -2189,7 +2189,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4700 self.assertEqual(pool, created_machine.pool)
4701 self.assertThat(mock_post_commit_do, MockCalledOnce())
4702
4703- def test__compose_uses_pod_pool(self):
4704+ def test_compose_uses_pod_pool(self):
4705 mock_post_commit_do = self.patch(pods_module, "post_commit_do")
4706 request = MagicMock()
4707 pod = make_pod_with_hints()
4708@@ -2216,7 +2216,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4709 self.assertEqual(pod.pool, created_machine.pool)
4710 self.assertThat(mock_post_commit_do, MockCalledOnce())
4711
4712- def test__compose_check_over_commit_ratios_raises_error_for_cores(self):
4713+ def test_compose_check_over_commit_ratios_raises_error_for_cores(self):
4714 request = MagicMock()
4715 pod = make_pod_with_hints()
4716 pod.cores = 0
4717@@ -2238,7 +2238,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4718 str(error),
4719 )
4720
4721- def test__compose_check_over_commit_ratios_raises_error_for_memory(self):
4722+ def test_compose_check_over_commit_ratios_raises_error_for_memory(self):
4723 request = MagicMock()
4724 pod = make_pod_with_hints()
4725 pod.memory = 0
4726@@ -2265,7 +2265,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4727 str(error),
4728 )
4729
4730- def test__compose_handles_timeout_error(self):
4731+ def test_compose_handles_timeout_error(self):
4732 request = MagicMock()
4733 pod = make_pod_with_hints()
4734
4735@@ -2286,7 +2286,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4736
4737 @wait_for_reactor
4738 @inlineCallbacks
4739- def test__compose_with_commissioning_in_reactor(self):
4740+ def test_compose_with_commissioning_in_reactor(self):
4741 request = MagicMock()
4742 pod = yield deferToDatabase(make_pod_with_hints, with_host=True)
4743 mock_request_commissioning_results = self.patch(
4744@@ -2344,7 +2344,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
4745 self.assertThat(mock_commissioning, MockCalledOnce())
4746 self.assertThat(mock_request_commissioning_results, MockCalledOnce())
4747
4748- def test__save_raises_AttributeError(self):
4749+ def test_save_raises_AttributeError(self):
4750 request = MagicMock()
4751 pod = make_pod_with_hints()
4752 form = ComposeMachineForm(data={}, request=request, pod=pod)
4753@@ -2372,18 +2372,18 @@ class TestComposeMachineForPodsForm(MAASServerTestCase):
4754 def make_pods(self):
4755 return [make_pod_with_hints() for _ in range(3)]
4756
4757- def test__requires_request_kwarg(self):
4758+ def test_requires_request_kwarg(self):
4759 error = self.assertRaises(ValueError, ComposeMachineForPodsForm)
4760 self.assertEqual("'request' kwargs is required.", str(error))
4761
4762- def test__requires_pods_kwarg(self):
4763+ def test_requires_pods_kwarg(self):
4764 request = MagicMock()
4765 error = self.assertRaises(
4766 ValueError, ComposeMachineForPodsForm, request=request
4767 )
4768 self.assertEqual("'pods' kwargs is required.", str(error))
4769
4770- def test__sets_up_pod_forms_based_on_pods(self):
4771+ def test_sets_up_pod_forms_based_on_pods(self):
4772 request = MagicMock()
4773 pods = self.make_pods()
4774 data = self.make_data(pods)
4775@@ -2406,7 +2406,7 @@ class TestComposeMachineForPodsForm(MAASServerTestCase):
4776 ),
4777 )
4778
4779- def test__save_raises_AttributeError(self):
4780+ def test_save_raises_AttributeError(self):
4781 request = MagicMock()
4782 pods = self.make_pods()
4783 data = self.make_data(pods)
4784@@ -2490,13 +2490,13 @@ class TestComposeMachineForPodsForm(MAASServerTestCase):
4785
4786
4787 class TestGetKnownHostInterfaces(MAASServerTestCase):
4788- def test__returns_empty_list_if_no_interfaces(self):
4789+ def test_returns_empty_list_if_no_interfaces(self):
4790 node = factory.make_Machine_with_Interface_on_Subnet()
4791 node.interface_set.all().delete()
4792 interfaces = get_known_host_interfaces(node)
4793 self.assertThat(interfaces, HasLength(0))
4794
4795- def test__returns_appropriate_attach_type(self):
4796+ def test_returns_appropriate_attach_type(self):
4797 node = factory.make_Machine_with_Interface_on_Subnet()
4798 vlan = factory.make_VLAN(dhcp_on=False)
4799 node.interface_set.all().delete()
4800@@ -2523,7 +2523,7 @@ class TestGetKnownHostInterfaces(MAASServerTestCase):
4801 ],
4802 )
4803
4804- def test__behaves_correctly_when_vlan_is_none(self):
4805+ def test_behaves_correctly_when_vlan_is_none(self):
4806 node = factory.make_Machine_with_Interface_on_Subnet()
4807 node.interface_set.all().delete()
4808 bridge = factory.make_Interface(
4809@@ -2549,7 +2549,7 @@ class TestGetKnownHostInterfaces(MAASServerTestCase):
4810 ],
4811 )
4812
4813- def test__gets_dhcp_status_for_directly_enabled_vlan(self):
4814+ def test_gets_dhcp_status_for_directly_enabled_vlan(self):
4815 node = factory.make_Machine_with_Interface_on_Subnet()
4816 vlan = factory.make_VLAN(dhcp_on=True)
4817 node.interface_set.all().delete()
4818@@ -2576,7 +2576,7 @@ class TestGetKnownHostInterfaces(MAASServerTestCase):
4819 ],
4820 )
4821
4822- def test__gets_dhcp_status_for_indirectly_enabled_vlan(self):
4823+ def test_gets_dhcp_status_for_indirectly_enabled_vlan(self):
4824 node = factory.make_Machine_with_Interface_on_Subnet()
4825 relay_vlan = factory.make_VLAN(dhcp_on=True)
4826 vlan = factory.make_VLAN(dhcp_on=False, relay_vlan=relay_vlan)
4827diff --git a/src/maasserver/forms/tests/test_script.py b/src/maasserver/forms/tests/test_script.py
4828index ba9d743..3dbe295 100644
4829--- a/src/maasserver/forms/tests/test_script.py
4830+++ b/src/maasserver/forms/tests/test_script.py
4831@@ -34,17 +34,17 @@ from provisioningserver.events import AUDIT
4832
4833
4834 class TestScriptForm(MAASServerTestCase):
4835- def test__create_requires_name(self):
4836+ def test_create_requires_name(self):
4837 form = ScriptForm(data={"script": factory.make_script_content()})
4838 self.assertFalse(form.is_valid())
4839 self.assertItemsEqual([], VersionedTextFile.objects.all())
4840
4841- def test__create_requires_script(self):
4842+ def test_create_requires_script(self):
4843 form = ScriptForm(data={"name": factory.make_string()})
4844 self.assertFalse(form.is_valid())
4845 self.assertItemsEqual([], VersionedTextFile.objects.all())
4846
4847- def test__create_with_default_values(self):
4848+ def test_create_with_default_values(self):
4849 name = factory.make_name("name")
4850 script_content = factory.make_script_content()
4851
4852@@ -70,7 +70,7 @@ class TestScriptForm(MAASServerTestCase):
4853 self.assertFalse(script.may_reboot)
4854 self.assertFalse(script.recommission)
4855
4856- def test__create_with_defined_values(self):
4857+ def test_create_with_defined_values(self):
4858 name = factory.make_name("name")
4859 title = factory.make_name("title")
4860 description = factory.make_name("description")
4861@@ -144,7 +144,7 @@ class TestScriptForm(MAASServerTestCase):
4862 self.assertEquals(recommission, script.recommission)
4863 self.assertFalse(script.default)
4864
4865- def test__create_setting_default_has_no_effect(self):
4866+ def test_create_setting_default_has_no_effect(self):
4867 form = ScriptForm(
4868 data={
4869 "name": factory.make_name("name"),
4870@@ -156,7 +156,7 @@ class TestScriptForm(MAASServerTestCase):
4871 script = form.save()
4872 self.assertFalse(script.default)
4873
4874- def test__update(self):
4875+ def test_update(self):
4876 script = factory.make_Script()
4877 name = factory.make_name("name")
4878 title = factory.make_name("title")
4879@@ -238,19 +238,19 @@ class TestScriptForm(MAASServerTestCase):
4880 )
4881 self.assertFalse(script.default)
4882
4883- def test__update_no_fields_mandatory(self):
4884+ def test_update_no_fields_mandatory(self):
4885 script = factory.make_Script()
4886 form = ScriptForm(data={}, instance=script)
4887 self.assertTrue(form.is_valid(), form.errors)
4888
4889- def test__update_setting_default_has_no_effect(self):
4890+ def test_update_setting_default_has_no_effect(self):
4891 script = factory.make_Script(default=True)
4892 form = ScriptForm(data={"default": False}, instance=script)
4893 self.assertTrue(form.is_valid(), form.errors)
4894 script = form.save()
4895 self.assertTrue(script.default)
4896
4897- def test__update_prohibits_most_field_updates_on_default_script(self):
4898+ def test_update_prohibits_most_field_updates_on_default_script(self):
4899 script = factory.make_Script(default=True)
4900 for name, field in ScriptForm.base_fields.items():
4901 if name in ["tags", "timeout"]:
4902@@ -279,7 +279,7 @@ class TestScriptForm(MAASServerTestCase):
4903 self.assertFalse(form.is_valid())
4904 self.assertEquals(1, VersionedTextFile.objects.all().count())
4905
4906- def test__update_edit_default_allows_update_of_all_fields(self):
4907+ def test_update_edit_default_allows_update_of_all_fields(self):
4908 script = factory.make_Script(default=True)
4909 for name, field in ScriptForm.base_fields.items():
4910 if name == "script_type":
4911@@ -309,7 +309,7 @@ class TestScriptForm(MAASServerTestCase):
4912 )
4913 self.assertTrue(form.is_valid(), form.errors)
4914
4915- def test__update_allows_editing_tag_and_timeout_on_default_script(self):
4916+ def test_update_allows_editing_tag_and_timeout_on_default_script(self):
4917 script = factory.make_Script(default=True, destructive=False)
4918 tags = [factory.make_name("tag") for _ in range(3)]
4919 timeout = random.randint(0, 1000)
4920@@ -324,7 +324,7 @@ class TestScriptForm(MAASServerTestCase):
4921 self.assertThat(script.tags, ContainsAll(tags))
4922 self.assertEquals(timedelta(0, timeout), script.timeout)
4923
4924- def test__update_requires_script_with_comment(self):
4925+ def test_update_requires_script_with_comment(self):
4926 script = factory.make_Script()
4927 form = ScriptForm(
4928 data={"comment": factory.make_name("comment")}, instance=script
4929@@ -340,7 +340,7 @@ class TestScriptForm(MAASServerTestCase):
4930 form.errors,
4931 )
4932
4933- def test__update_script_doesnt_effect_other_fields(self):
4934+ def test_update_script_doesnt_effect_other_fields(self):
4935 script = factory.make_Script()
4936 script_content = factory.make_script_content()
4937 name = script.name
4938@@ -381,7 +381,7 @@ class TestScriptForm(MAASServerTestCase):
4939 self.assertItemsEqual(for_hardware, script.for_hardware)
4940 self.assertEquals(recommission, script.recommission)
4941
4942- def test__yaml_doesnt_update_tags(self):
4943+ def test_yaml_doesnt_update_tags(self):
4944 script = factory.make_Script()
4945 orig_tags = script.tags
4946
4947@@ -397,7 +397,7 @@ class TestScriptForm(MAASServerTestCase):
4948 script = form.save()
4949 self.assertItemsEqual(orig_tags, script.tags)
4950
4951- def test__yaml_doesnt_update_timeout(self):
4952+ def test_yaml_doesnt_update_timeout(self):
4953 script = factory.make_Script()
4954 orig_timeout = script.timeout
4955
4956@@ -413,7 +413,7 @@ class TestScriptForm(MAASServerTestCase):
4957 script = form.save()
4958 self.assertEquals(orig_timeout, script.timeout)
4959
4960- def test__can_use_script_type_name(self):
4961+ def test_can_use_script_type_name(self):
4962 script_type = factory.pick_choice(SCRIPT_TYPE_CHOICES)
4963 form = ScriptForm(
4964 data={
4965@@ -427,7 +427,7 @@ class TestScriptForm(MAASServerTestCase):
4966
4967 self.assertEquals(script_type, script.script_type)
4968
4969- def test__errors_on_invalid_script_type(self):
4970+ def test_errors_on_invalid_script_type(self):
4971 form = ScriptForm(
4972 data={
4973 "name": factory.make_name("name"),
4974@@ -442,7 +442,7 @@ class TestScriptForm(MAASServerTestCase):
4975 )
4976 self.assertItemsEqual([], VersionedTextFile.objects.all())
4977
4978- def test__can_use_hardware_type_name(self):
4979+ def test_can_use_hardware_type_name(self):
4980 hardware_type = factory.pick_choice(HARDWARE_TYPE_CHOICES)
4981 form = ScriptForm(
4982 data={
4983@@ -456,7 +456,7 @@ class TestScriptForm(MAASServerTestCase):
4984
4985 self.assertEquals(hardware_type, script.hardware_type)
4986
4987- def test__errors_on_invalid_hardware_type(self):
4988+ def test_errors_on_invalid_hardware_type(self):
4989 form = ScriptForm(
4990 data={
4991 "name": factory.make_name("name"),
4992@@ -475,7 +475,7 @@ class TestScriptForm(MAASServerTestCase):
4993 )
4994 self.assertItemsEqual([], VersionedTextFile.objects.all())
4995
4996- def test__can_use_parallel(self):
4997+ def test_can_use_parallel(self):
4998 script_parallel = factory.pick_choice(SCRIPT_PARALLEL_CHOICES)
4999 form = ScriptForm(
5000 data={
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches