Refactor after the review, add test

This commit is contained in:
Agrendalath
2019-09-18 05:32:50 +02:00
parent f03081d04f
commit 9449b50da6
2 changed files with 14 additions and 30 deletions

View File

@@ -915,39 +915,13 @@ class LoginFailures(models.Model):
except ObjectDoesNotExist:
return
def __repr__(self):
"""Repr -> LoginFailures(username, count, date)"""
date_str = '-'
if self.lockout_until is not None:
date_str = self.lockout_until.isoformat()
try:
username = unicode(self.user.username, 'utf-8')
except TypeError:
username = self.user.username
return u'LoginFailures({username}, {count}, {date})'.format(
username=username,
count=self.failure_count,
date=date_str
)
def __str__(self):
"""Str -> Username: count - date."""
date_str = '-'
if self.lockout_until is not None:
date_str = self.lockout_until.isoformat()
try:
username = unicode(self.user.username, 'utf-8')
except TypeError:
username = self.user.username
return u'{username}: {count} - {date}'.format(
username=username,
return six.text_type('{username}: {count} - {date}'.format(
username=self.user.username,
count=self.failure_count,
date=date_str
)
date=self.lockout_until.isoformat() if self.lockout_until else '-'
))
class Meta:
verbose_name = 'Login Failure'

View File

@@ -333,6 +333,16 @@ class LoginFailuresAdminTest(TestCase):
super(LoginFailuresAdminTest, self).tearDown()
LoginFailures.objects.all().delete()
def test_unicode_username(self):
"""
Test if `__str__` method behaves correctly for unicode username.
It shouldn't raise `TypeError`.
"""
try:
map(str, LoginFailures.objects.all())
except TypeError, e:
self.fail("Failed executing `__str__` with unicode: {0}".format(e))
@ddt.data(
reverse('admin:student_loginfailures_changelist'),
reverse('admin:student_loginfailures_add'),