Hostea dashboard 2022-09-04 17:49:53 +05:30
parent 6c31555a52
commit 011fb4816f
Signed by untrusted user who does not match committer: realaravinth
GPG Key ID: AD9F0F08E855ED88
3 changed files with 14 additions and 6 deletions

View File

@ -77,7 +77,9 @@ class LoginTest(TestCase):
Tests if login template renders
"""
resp = self.client.get(reverse("accounts.login"))
self.assertEqual(b"A free forge ecosystem for free developers" in resp.content, True)
self.assertEqual(
b"A free forge ecosystem for free developers" in resp.content, True
)
def test_login_works(self):
"""
@ -234,7 +236,9 @@ class RegistrationTest(TestCase):
Tests if register template renders
"""
resp = self.client.get(reverse("accounts.register"))
self.assertEqual(b"A free forge ecosystem for free developers." in resp.content, True)
self.assertEqual(
b"A free forge ecosystem for free developers." in resp.content, True
)
def test_register_works(self):
"""

View File

@ -23,6 +23,8 @@ from .models import Instance, InstanceConfiguration
@unique
class VmErrors(Enum):
NAME_EXISTS = "Instance name exists, please try again with a different name"
ILLEGAL_NAME = "Only alphanumeric characters are allowed in instance name"
NAME_TOO_LONG = "Instance name must be less than 20 characters"
NO_CONFIG = "Configuration doesn't exist, please try again."
def __str__(self) -> str:
@ -46,6 +48,11 @@ def create_instance(vm_name: str, configuration_name: str, user: User) -> Instan
Create instance view
"""
if len(vm_name) > 20:
raise VmException(code=VmErrors.NAME_TOO_LONG)
if not str.isalnum(vm_name):
raise VmException(code=VmErrors.ILLEGAL_NAME)
if Instance.objects.filter(name=vm_name).exists():
raise VmException(code=VmErrors.NAME_EXISTS)

View File

@ -89,10 +89,7 @@ def create_instance(request):
return redirect(reverse("billing.invoice.generate", args=(instance.name,)))
except VmException as e:
ctx = get_ctx()
if e.code == VmErrors.NAME_EXISTS:
reason = ("Instance name exists, please try again with a different name",)
elif e.code == VmErrors.NO_CONFIG:
reason = "Configuration doesn't exist, please try again."
reason = e.error
ctx["error"] = {
"title": "Can't create instance",