From 46347d1bcc97d528f94cd8f0fc7a5bcfeaf53ca4 Mon Sep 17 00:00:00 2001 From: Carlos Nihelton Date: Tue, 10 May 2022 08:15:19 -0300 Subject: [PATCH] Adds UI tests for the invalid cases. --- subiquity/ui/views/tests/test_identity.py | 45 ++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/subiquity/ui/views/tests/test_identity.py b/subiquity/ui/views/tests/test_identity.py index d5bb5192..94f0d9ee 100644 --- a/subiquity/ui/views/tests/test_identity.py +++ b/subiquity/ui/views/tests/test_identity.py @@ -4,7 +4,7 @@ from unittest import mock from subiquitycore.testing import view_helpers from subiquity.client.controllers.identity import IdentityController -from subiquity.common.types import IdentityData +from subiquity.common.types import IdentityData, UsernameValidation from subiquity.ui.views.identity import IdentityView @@ -16,6 +16,30 @@ valid_data = { 'confirm_password': 'password' } +too_long = { + 'realname': 'Real Name', + 'hostname': 'host-name', + 'username': 'u'*33, + 'password': 'password', + 'confirm_password': 'password' + } + +already_taken = { + 'realname': 'Real Name', + 'hostname': 'host-name', + 'username': 'root', + 'password': 'password', + 'confirm_password': 'password' + } + +system_reserved = { + 'realname': 'Real Name', + 'hostname': 'host-name', + 'username': 'plugdev', + 'password': 'password', + 'confirm_password': 'password' + } + class IdentityViewTests(unittest.TestCase): @@ -41,6 +65,25 @@ class IdentityViewTests(unittest.TestCase): view_helpers.enter_data(view.form, valid_data) self.assertTrue(view.form.done_btn.enabled) + def test_username_validation_system_reserved(self): + view = self.make_view() + view.controller.username_validation = \ + UsernameValidation.SYSTEM_RESERVED + view_helpers.enter_data(view.form, system_reserved) + self.assertFalse(view.form.done_btn.enabled) + + def test_username_validation_in_use(self): + view = self.make_view() + view.controller.username_validation = UsernameValidation.ALREADY_IN_USE + view_helpers.enter_data(view.form, already_taken) + self.assertFalse(view.form.done_btn.enabled) + + def test_username_validation_too_long(self): + view = self.make_view() + view.controller.username_validation = UsernameValidation.TOO_LONG + view_helpers.enter_data(view.form, too_long) + self.assertFalse(view.form.done_btn.enabled) + def test_click_done(self): view = self.make_view() CRYPTED = ''