Merge pull request #2491 from chdorner/register-tz-support
Detect preferred timezone via JavaScript on register
This commit is contained in:
commit
89478ac87e
4 changed files with 80 additions and 0 deletions
|
@ -58,6 +58,7 @@ class RegisterViews(TestCase):
|
|||
"localname": "nutria-user.user_nutria",
|
||||
"password": "mouseword",
|
||||
"email": "aa@bb.cccc",
|
||||
"preferred_timezone": "Europe/Berlin",
|
||||
},
|
||||
)
|
||||
with patch("bookwyrm.views.landing.register.login"):
|
||||
|
@ -68,6 +69,7 @@ class RegisterViews(TestCase):
|
|||
self.assertEqual(nutria.username, f"nutria-user.user_nutria@{DOMAIN}")
|
||||
self.assertEqual(nutria.localname, "nutria-user.user_nutria")
|
||||
self.assertEqual(nutria.local, True)
|
||||
self.assertEqual(nutria.preferred_timezone, "Europe/Berlin")
|
||||
|
||||
@patch("bookwyrm.emailing.send_email.delay")
|
||||
def test_register_email_confirm(self, *_):
|
||||
|
@ -198,6 +200,58 @@ class RegisterViews(TestCase):
|
|||
self.assertEqual(models.User.objects.count(), 1)
|
||||
validate_html(response.render())
|
||||
|
||||
def test_register_default_preferred_timezone(self, *_):
|
||||
"""invalid preferred timezone strings should just default to UTC"""
|
||||
view = views.Register.as_view()
|
||||
self.assertEqual(models.User.objects.count(), 1)
|
||||
|
||||
request = self.factory.post(
|
||||
"register/",
|
||||
{
|
||||
"localname": "nutria1",
|
||||
"password": "mouseword",
|
||||
"email": "aa1@bb.cccc",
|
||||
"preferred_timezone": "invalid-tz",
|
||||
},
|
||||
)
|
||||
with patch("bookwyrm.views.landing.register.login"):
|
||||
response = view(request)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(models.User.objects.count(), 2)
|
||||
nutria = models.User.objects.last()
|
||||
self.assertEqual(nutria.preferred_timezone, "UTC")
|
||||
|
||||
request = self.factory.post(
|
||||
"register/",
|
||||
{
|
||||
"localname": "nutria2",
|
||||
"password": "mouseword",
|
||||
"email": "aa2@bb.cccc",
|
||||
"preferred_timezone": "",
|
||||
},
|
||||
)
|
||||
with patch("bookwyrm.views.landing.register.login"):
|
||||
response = view(request)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(models.User.objects.count(), 3)
|
||||
nutria = models.User.objects.last()
|
||||
self.assertEqual(nutria.preferred_timezone, "UTC")
|
||||
|
||||
request = self.factory.post(
|
||||
"register/",
|
||||
{
|
||||
"localname": "nutria3",
|
||||
"password": "mouseword",
|
||||
"email": "aa3@bb.cccc",
|
||||
},
|
||||
)
|
||||
with patch("bookwyrm.views.landing.register.login"):
|
||||
response = view(request)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(models.User.objects.count(), 4)
|
||||
nutria = models.User.objects.last()
|
||||
self.assertEqual(nutria.preferred_timezone, "UTC")
|
||||
|
||||
def test_register_closed_instance(self, *_):
|
||||
"""you can't just register"""
|
||||
view = views.Register.as_view()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue