Skip to content
Snippets Groups Projects
Commit 4d524b21 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

adding worker with password mismatch doesn't crash system anymore

parent f6b7dfe5
No related branches found
No related tags found
1 merge request!146Resolve "adding worker with password missmatch"
Pipeline #
...@@ -83,10 +83,10 @@ class WorkerForm(ModelForm): ...@@ -83,10 +83,10 @@ class WorkerForm(ModelForm):
def clean(self): def clean(self):
cleaned_data = super(WorkerForm, self).clean() cleaned_data = super(WorkerForm, self).clean()
if cleaned_data.get('password', None) is not None: if cleaned_data.get('password', None) is not None:
password = cleaned_data['password']
if cleaned_data['password'] != cleaned_data['password2']: if cleaned_data['password'] != cleaned_data['password2']:
self.add_error('password', "Password don't match") self.add_error('password', "Password don't match")
self.add_error('password2', "Password don't match") self.add_error('password2', "Password don't match")
password = cleaned_data['password']
min_length = 10 min_length = 10
if len(password) < min_length: if len(password) < min_length:
self.add_error('password', 'Password must be at least ' + str(min_length) + ' characters long.') self.add_error('password', 'Password must be at least ' + str(min_length) + ' characters long.')
......
import logging
from web.models.worker_study_role import ROLE_CHOICES_TECHNICIAN
from web.models.constants import COUNTRY_OTHER_ID
from web.forms import WorkerForm
from web.tests import LoggedInWithWorkerTestCase
logger = logging.getLogger(__name__)
class VoucherFormTests(LoggedInWithWorkerTestCase):
def setUp(self):
super(VoucherFormTests, self).setUp()
def test_password_miss_match_on_create(self):
worker_data = VoucherFormTests.create_valid_worker_data()
worker_data["password"] = "test123456x"
worker_data["password2"] = "test123456y"
worker_form = WorkerForm(data=worker_data)
self.assertFalse(worker_form.is_valid())
self.assertTrue("password2" in worker_form.errors)
def test_password_to_short_on_create(self):
worker_data = VoucherFormTests.create_valid_worker_data()
worker_data["password"] = "x"
worker_data["password2"] = "x"
worker_form = WorkerForm(data=worker_data)
self.assertFalse(worker_form.is_valid())
self.assertTrue("password" in worker_form.errors)
def test_password_to_easy_on_create(self):
worker_data = VoucherFormTests.create_valid_worker_data()
worker_data["password"] = "xxxxxxxxxx"
worker_data["password2"] = "xxxxxxxxxx"
worker_form = WorkerForm(data=worker_data)
self.assertFalse(worker_form.is_valid())
self.assertTrue("password" in worker_form.errors)
def test_password_to_easy_on_create_2(self):
worker_data = VoucherFormTests.create_valid_worker_data()
worker_data["password"] = "2222222222"
worker_data["password2"] = "2222222222"
worker_form = WorkerForm(data=worker_data)
self.assertFalse(worker_form.is_valid())
self.assertTrue("password" in worker_form.errors)
def test_invalid_login_on_create(self):
worker_data = VoucherFormTests.create_valid_worker_data()
worker_data["login"] = "some login - bla"
worker_form = WorkerForm(data=worker_data)
self.assertFalse(worker_form.is_valid())
self.assertTrue("login" in worker_form.errors)
def test_valid_form(self):
worker_data = VoucherFormTests.create_valid_worker_data()
worker_form = WorkerForm(data=worker_data)
worker_form.is_valid()
self.assertTrue(worker_form.is_valid())
@staticmethod
def create_valid_worker_data():
form_data = {
"login": "test.login",
"password": "test123456",
"password2": "test123456",
"last_name": "Surname",
"first_name": "Given name",
"country": COUNTRY_OTHER_ID,
"role": ROLE_CHOICES_TECHNICIAN,
}
return form_data
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment