38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
|
import flask
|
||
|
import flask_login
|
||
|
from pillar.tests import AbstractPillarTest
|
||
|
|
||
|
|
||
|
class UsernameTest(AbstractPillarTest):
|
||
|
def setUp(self, **kwargs) -> None:
|
||
|
super().setUp(**kwargs)
|
||
|
self.user_id = self.create_user()
|
||
|
|
||
|
def test_update_via_web(self) -> None:
|
||
|
from pillar.auth import current_user
|
||
|
import pillar.web.settings.routes
|
||
|
|
||
|
with self.app.app_context():
|
||
|
url = flask.url_for('settings.profile')
|
||
|
|
||
|
with self.app.test_request_context(
|
||
|
path=url,
|
||
|
data={'username': 'je.moeder'},
|
||
|
method='POST',
|
||
|
):
|
||
|
self.login_api_as(self.user_id)
|
||
|
flask_login.login_user(current_user)
|
||
|
pillar.web.settings.routes.profile()
|
||
|
|
||
|
db_user = self.fetch_user_from_db(self.user_id)
|
||
|
self.assertEqual('je.moeder', db_user['username'])
|
||
|
|
||
|
def test_update_via_patch(self) -> None:
|
||
|
self.create_valid_auth_token(self.user_id, 'user-token')
|
||
|
self.patch(f'/api/users/{self.user_id}',
|
||
|
json={'op': 'set-username', 'username': 'je.moeder'},
|
||
|
auth_token='user-token')
|
||
|
|
||
|
db_user = self.fetch_user_from_db(self.user_id)
|
||
|
self.assertEqual('je.moeder', db_user['username'])
|