-
-
Notifications
You must be signed in to change notification settings - Fork 527
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
141 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
from django.urls import reverse | ||
|
||
from ...test import assert_contains, assert_has_success_message, assert_not_contains | ||
|
||
|
||
def test_account_username_returns_error_for_guests(user, client): | ||
response = client.get(reverse("misago:account-username")) | ||
assert_contains(response, "You need to be signed in", status_code=403) | ||
|
||
|
||
def test_account_username_renders_form(user_client): | ||
response = user_client.get(reverse("misago:account-username")) | ||
assert_contains(response, "Change username") | ||
|
||
|
||
def test_account_username_form_changes_username(user_client, user): | ||
response = user_client.post( | ||
reverse("misago:account-username"), {"username": "JohnDoe"} | ||
) | ||
|
||
assert response.status_code == 302 | ||
assert_has_success_message(response, "Username changed") | ||
|
||
user.refresh_from_db() | ||
assert user.username == "JohnDoe" | ||
|
||
change = user.namechanges.first() | ||
assert change.new_username == "JohnDoe" | ||
assert change.old_username == "User" | ||
|
||
|
||
def test_account_username_form_validates_username(user_client, admin, user): | ||
response = user_client.post( | ||
reverse("misago:account-username"), {"username": admin.username} | ||
) | ||
|
||
assert response.status_code == 200 | ||
assert_contains(response, "This username is not available.") | ||
|
||
user.refresh_from_db() | ||
assert user.username == "User" | ||
|
||
|
||
def test_account_username_form_validates_username_change_permission(user_client, user): | ||
user.group.can_change_username = False | ||
user.group.save() | ||
|
||
response = user_client.post( | ||
reverse("misago:account-username"), {"username": "JohnDoe"} | ||
) | ||
|
||
assert response.status_code == 200 | ||
assert_contains(response, "You can't change your username.") | ||
|
||
user.refresh_from_db() | ||
assert user.username == "User" | ||
|
||
|
||
def test_account_username_form_validates_username_change_cooldown(user_client, user): | ||
user.group.username_changes_span = 1 | ||
user.group.save() | ||
|
||
user.set_username("John", user) | ||
|
||
response = user_client.post( | ||
reverse("misago:account-username"), {"username": "JohnDoe"} | ||
) | ||
|
||
assert response.status_code == 200 | ||
assert_contains(response, "You can't change your username at the moment.") | ||
|
||
user.refresh_from_db() | ||
assert user.username == "User" | ||
|
||
|
||
def test_account_username_renders_message_about_unlimited_username_changes( | ||
user_client, user | ||
): | ||
user.group.username_changes_limit = 0 | ||
user.group.save() | ||
|
||
response = user_client.get(reverse("misago:account-username")) | ||
assert_contains(response, "Change username") | ||
assert_contains(response, "You can change your username unlimited number of times.") | ||
|
||
|
||
def test_account_username_renders_message_about_username_changes_disabled( | ||
user_client, user | ||
): | ||
user.group.can_change_username = False | ||
user.group.save() | ||
|
||
response = user_client.get(reverse("misago:account-username")) | ||
assert_contains(response, "Change username") | ||
assert_contains(response, "You can't change your username.") | ||
|
||
|
||
def test_account_username_renders_message_about_username_changes_left( | ||
user_client, user | ||
): | ||
user.group.username_changes_limit = 2 | ||
user.group.username_changes_span = 0 | ||
user.group.save() | ||
|
||
user.set_username("John", user) | ||
|
||
response = user_client.get(reverse("misago:account-username")) | ||
assert_contains(response, "Change username") | ||
assert_contains(response, "You can change your username 1 more time.") | ||
|
||
|
||
def test_account_username_renders_message_about_username_change_cooldown( | ||
user_client, user | ||
): | ||
user.group.username_changes_span = 1 | ||
user.group.save() | ||
|
||
user.set_username("John", user) | ||
|
||
response = user_client.get(reverse("misago:account-username")) | ||
assert_contains(response, "Change username") | ||
assert_contains(response, "You will be able to change your username again") | ||
|
||
|
||
def test_account_username_renders_empty_history(user_client): | ||
response = user_client.get(reverse("misago:account-username")) | ||
assert_contains(response, "Changes history") | ||
assert_contains(response, "Your account has no history of name changes.") | ||
|
||
|
||
def test_account_username_renders_history_item(user_client, user): | ||
orginal_username = user.username | ||
user.set_username("John", user) | ||
|
||
response = user_client.get(reverse("misago:account-username")) | ||
assert_contains(response, "Changes history") | ||
assert_contains(response, orginal_username) | ||
assert_contains(response, "John") | ||
assert_not_contains(response, "Your account has no history of name changes.") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters