def test_GET_returns_empty_if_no_ipaddresses(self): response = self.client.get(reverse('ipaddresses_handler')) self.assertEqual(http.client.OK, response.status_code, response.content) self.assertEqual([], json_load_bytes(response.content))
def test_api_doc_accessibility(self): self.patch(sys, "stderr", StringIO()) response = self.client.get(reverse('api-doc')) self.assertThat(response, HasStatusCode(http.client.OK)) # No error or warning are emitted by docutils. self.assertEqual("", sys.stderr.getvalue())
def test_read_404_when_bad_id(self): uri = reverse("fabric_handler", args=[random.randint(100, 1000)]) response = self.client.get(uri) self.assertEqual( http.client.NOT_FOUND, response.status_code, response.content )
def test_read_404_when_bad_id(self): uri = reverse( 'discovery_handler', args=[random.randint(10000, 20000)]) response = self.client.get(uri) self.assertThat(response, HasStatusCode(http.client.NOT_FOUND))
def get_discovery_uri(discovery): """Return a Discovery URI on the API.""" return reverse( 'discovery_handler', args=[discovery.discovery_id])
def test_get_api_version(self): response = self.client.get(reverse("api_version")) self.assertThat(response, HasStatusCode(http.client.OK)) self.assertIn("text/plain", response["Content-Type"]) self.assertEqual(b"2.0", response.content)
def test_simple_user_set_config_forbidden(self): response = self.client.post(reverse("maas_handler"), {"op": "set_config"}) self.assertEqual(http.client.FORBIDDEN, response.status_code)
def get_url(self, script_name): return reverse("commissioning_script_handler", args=[script_name])
def get_url(self): return reverse("commissioning_scripts_handler")
def get_undefined_space_uri(): """Return a Space URI on the API.""" return reverse('space_handler', args=['undefined'])
from maasserver.utils.django_urls import reverse from maasserver.utils.orm import is_retryable_failure from maasserver.views.combo import MERGE_VIEWS from provisioningserver.rpc.exceptions import ( NoConnectionsAvailable, PowerActionAlreadyInProgress, ) from provisioningserver.utils.shell import ExternalProcessError # 'Retry-After' header sent for httplib.SERVICE_UNAVAILABLE # responses. RETRY_AFTER_SERVICE_UNAVAILABLE = 10 PUBLIC_URL_PREFIXES = [ # Login page: must be visible to anonymous users. reverse('login'), # Authentication: must be visible to anonymous users. reverse('authenticate'), reverse('discharge-request'), # The combo loaders are publicly accessible. reverse('robots'), reverse('api-doc'), # Metadata service is for use by nodes; no login. reverse('metadata'), # RPC information is for use by rack controllers; no login. reverse('rpc-info'), # Prometheus metrics with usage stats reverse('metrics'), # API meta-information is publicly visible. reverse('api_version'), reverse('api_v1_error'),
def test_delete_404_when_invalid_id(self): self.become_admin() uri = reverse('space_handler', args=[random.randint(100, 1000)]) response = self.client.delete(uri) self.assertEqual(http.client.NOT_FOUND, response.status_code, response.content)
def get_space_uri(space): """Return a Space URI on the API.""" return reverse('space_handler', args=[space.id])
def get_spaces_uri(): """Return a Space's URI on the API.""" return reverse('spaces_handler', args=[])
def test_api_version_handler_path(self): self.assertEqual("/MAAS/api/version/", reverse("api_version"))
def get_dnsresourcerecords_uri(): """Return a DNSResourceRecord's URI on the API.""" return reverse("dnsresourcerecords_handler", args=[])
def test_v1_error_handler_path(self): self.assertEqual("/MAAS/api/1.0/", reverse("api_v1_error"))
def get_dnsresourcerecord_uri(dnsresourcerecord): """Return a DNSResourceRecord URI on the API.""" return reverse("dnsresourcerecord_handler", args=[dnsresourcerecord.id])
def test_handler_path(self): self.assertEqual("/MAAS/api/2.0/maas/", reverse("maas_handler"))
def test_handler_path(self): self.assertEqual("/MAAS/api/2.0/account/", reverse("account_handler"))
def test_get_config_requires_name_param(self): response = self.client.get(reverse("maas_handler"), {"op": "get_config"}) self.assertEqual(http.client.BAD_REQUEST, response.status_code) self.assertEqual(b"No provided name!", response.content)
def test_sshkeys_handler_path(self): self.assertEqual("/MAAS/api/2.0/account/prefs/sshkeys/", reverse("sshkeys_handler"))
def get_discoveries_uri(): """Return a Discovery's URI on the API.""" return reverse('discoveries_handler', args=[])
def test_sshkey_handler_path(self): self.assertEqual( "/MAAS/api/2.0/account/prefs/sshkeys/key/", reverse("sshkey_handler", args=["key"]), )
def get_discovery_uri_by_specifiers(specifiers): """Return a Discovery URI on the API.""" return reverse( 'discovery_handler', args=[specifiers])
def test_delete_fails_if_not_your_key(self): user, keys = factory.make_user_with_keys(n_keys=1) response = self.client.delete( reverse("sshkey_handler", args=[keys[0].id])) self.assertEqual(http.client.FORBIDDEN, response.status_code, response) self.assertEqual(1, len(SSHKey.objects.filter(user=user)))
def test_handler_path(self): self.assertEqual('/MAAS/api/2.0/doc/', reverse('api-doc'))
def test_anon_set_config_unauthorized(self): response = self.client.post(reverse("maas_handler"), {"op": "set_config"}) self.assertEqual(http.client.UNAUTHORIZED, response.status_code)
def get_fabrics_uri(): """Return a Fabric's URI on the API.""" return reverse("fabrics_handler", args=[])
def test_handler_path(self): self.assertEqual('/api/2.0/ipaddresses/', reverse('ipaddresses_handler'))