def test_convert_to_lowercase(self): self.assertEqual(first=normalize_slug(slug='CamelCase'), second='camelcase') self.assertEqual(first=normalize_slug(slug='UPPERCASE'), second='uppercase') self.assertEqual(first=normalize_slug(slug='lowercase'), second='lowercase')
def run_test_all_slugs_to_test_list(self, test_settings): ok_count, model_save_failures_count = 0, 0 for slug_dict in tests_settings.SLUGS_TO_TEST_LIST: data = self.data.copy() data['slug'] = slug_dict["slug"] username = normalize_username(username=data['slug']) slug = normalize_slug(slug=data['slug']) data['email'] = "{username}@example.com".format( username=username) self.assertEqual(first=slug_dict["slug_length"], second=len(slug)) if (slug_dict["slug_length"] >= User.settings.MIN_SLUG_LENGTH): form = RegistrationForm(language_code=self.language_code, data=data) form.full_clean() self.assertTrue(expr=form.is_valid()) self.assertDictEqual(d1=form.errors, d2={}) user = form.save() self.assertEqual( first=User.objects.filter(username=username).count(), second=1) user = User.objects.get(username=username) self.assertEqual(first=user.username, second=username) self.assertEqual(first=user.slug, second=slug) ok_count += 1 else: form = RegistrationForm(language_code=self.language_code, data=data) form.full_clean() self.assertFalse(expr=form.is_valid()) self.assertDictEqual( d1=form.errors, d2=self. _model_slug_or_username_username_must_contain_at_least_min_length_characters_errors_dict_by_value_length( model=User, slug_fail=True, slug_value_length=slug_dict["slug_length"])) self.assertEqual( first=User.objects.filter(username=username).count(), second=0) model_save_failures_count += 1 counts_tuple = (ok_count, model_save_failures_count) self.assert_models_count( entity_count=ok_count, user_count=ok_count, user_email_address_count=ok_count, confirmed_email_address_count=0, unconfirmed_email_address_count=ok_count, ) self.assertEqual(first=sum(counts_tuple), second=len(tests_settings.SLUGS_TO_TEST_LIST)) self.assertTupleEqual( tuple1=counts_tuple, tuple2=test_settings["expected_counts_tuple"])
def test_slugs_to_test_list(self): self.assertEqual(first=len(tests_settings.SLUGS_TO_TEST_LIST), second=8) username_set, slug_set, username_length_set, slug_length_set = set(), set(), set(), set() for slug_dict in tests_settings.SLUGS_TO_TEST_LIST: username = normalize_username(username=slug_dict["slug"]) slug = normalize_slug(slug=slug_dict["slug"]) username_set.add(username) slug_set.add(slug) username_length_set.add(len(username)) slug_length_set.add(len(slug)) self.assertEqual(first=slug_dict["slug_length"], second=len(slug)) self.assertIn(member=len(username), container={29, 30, 31, 32}) self.assertIn(member=len(slug), container={57, 59, 61, 63}) self.assertIn(member=len(slug), container={len(username) * 2, (len(username) * 2) - 1}) self.assertEqual(first=len(username_set), second=8) self.assertEqual(first=len(slug_set), second=8) self.assertEqual(first=len(username_length_set), second=4) self.assertEqual(first=len(slug_length_set), second=4) self.assertSetEqual(set1=username_length_set, set2={29, 30, 31, 32}) self.assertSetEqual(set1=slug_length_set, set2={57, 59, 61, 63})
def set_up(self): super().set_up() self.password = get_random_user_password() self.data = { 'email': '*****@*****.**', 'slug': 'user-22', 'new_password1': self.password, 'gender': 1, 'date_of_birth': '1980-01-01', } self.username = normalize_username(username=self.data['slug']) self.slug = normalize_slug(slug=self.data['slug']) self.assertNotEqual(first=self.password, second=tests_settings.USER_PASSWORD) self.assertEqual(first=self.username, second='user22') self.assertEqual(first=self.slug, second='user-22') self.assertNotEqual(first=self.username, second=self.slug) self.assert_models_count( entity_count=0, user_count=0, user_email_address_count=0, confirmed_email_address_count=0, unconfirmed_email_address_count=0, )
def run_test_all_slugs_to_test_list(self, test_settings): ok_count, model_save_failures_count = 0, 0 for slug_dict in tests_settings.SLUGS_TO_TEST_LIST: data = self.data.copy() data['slug'] = slug_dict["slug"] username = normalize_username(username=data['slug']) slug = normalize_slug(slug=data['slug']) data['email'] = "{username}@example.com".format(username=username) self.assertEqual(first=slug_dict["slug_length"], second=len(slug)) if (slug_dict["slug_length"] >= User.settings.MIN_SLUG_LENGTH): form = RegistrationForm(language_code=self.language_code, data=data) form.full_clean() self.assertTrue(expr=form.is_valid()) self.assertDictEqual(d1=form.errors, d2={}) user = form.save() self.assertEqual(first=User.objects.filter(username=username).count(), second=1) user = User.objects.get(username=username) self.assertEqual(first=user.username, second=username) self.assertEqual(first=user.slug, second=slug) ok_count += 1 else: form = RegistrationForm(language_code=self.language_code, data=data) form.full_clean() self.assertFalse(expr=form.is_valid()) self.assertDictEqual(d1=form.errors, d2=self._model_slug_or_username_username_must_contain_at_least_min_length_characters_errors_dict_by_value_length(model=User, slug_fail=True, slug_value_length=slug_dict["slug_length"])) self.assertEqual(first=User.objects.filter(username=username).count(), second=0) model_save_failures_count += 1 counts_tuple = (ok_count, model_save_failures_count) self.assert_models_count( entity_count=ok_count, user_count=ok_count, user_email_address_count=ok_count, confirmed_email_address_count=0, unconfirmed_email_address_count=ok_count, ) self.assertEqual(first=sum(counts_tuple), second=len(tests_settings.SLUGS_TO_TEST_LIST)) self.assertTupleEqual(tuple1=counts_tuple, tuple2=test_settings["expected_counts_tuple"])
def test_slugs_to_test_list(self): self.assertEqual(first=len(tests_settings.SLUGS_TO_TEST_LIST), second=8) username_set, slug_set, username_length_set, slug_length_set = set( ), set(), set(), set() for slug_dict in tests_settings.SLUGS_TO_TEST_LIST: username = normalize_username(username=slug_dict["slug"]) slug = normalize_slug(slug=slug_dict["slug"]) username_set.add(username) slug_set.add(slug) username_length_set.add(len(username)) slug_length_set.add(len(slug)) self.assertEqual(first=slug_dict["slug_length"], second=len(slug)) self.assertIn(member=len(username), container={29, 30, 31, 32}) self.assertIn(member=len(slug), container={57, 59, 61, 63}) self.assertIn( member=len(slug), container={len(username) * 2, (len(username) * 2) - 1}) self.assertEqual(first=len(username_set), second=8) self.assertEqual(first=len(slug_set), second=8) self.assertEqual(first=len(username_length_set), second=4) self.assertEqual(first=len(slug_length_set), second=4) self.assertSetEqual(set1=username_length_set, set2={29, 30, 31, 32}) self.assertSetEqual(set1=slug_length_set, set2={57, 59, 61, 63})
def test_cut_leading_symbols(self): self.assertEqual(first=normalize_slug(slug='-dash'), second='dash') self.assertEqual(first=normalize_slug(slug='..dots'), second='dots') self.assertEqual(first=normalize_slug(slug='_under_score'), second='under-score')
def test_convert_multiple_dashes_to_one(self): self.assertEqual(first=normalize_slug(slug='three---dash---es'), second='three-dash-es')
def test_convert_underscores_to_dashes(self): self.assertEqual(first=normalize_slug(slug='one_underscore'), second='one-underscore') self.assertEqual(first=normalize_slug(slug='two__under_scores'), second='two-under-scores')
def test_convert_dots_to_dashes(self): self.assertEqual(first=normalize_slug(slug='one.dot'), second='one-dot') self.assertEqual(first=normalize_slug(slug='two..dot.s'), second='two-dot-s')
def normalize_slug_and_username(self): self.slug = normalize_slug(slug=self.slug) if (self.username): self.username = normalize_username(username=self.username) else: self.username = normalize_username(username=self.slug)
def test_cut_trailing_symbols(self): self.assertEqual(first=normalize_slug(slug='dash-'), second='dash') self.assertEqual(first=normalize_slug(slug='dots...'), second='dots') self.assertEqual(first=normalize_slug(slug='under_score_'), second='under-score')
def clean(self, x): return len(normalize_slug(slug=x))