You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.2 KiB
65 lines
2.2 KiB
# coding: utf-8
|
|
|
|
from flask import url_for
|
|
from conduit.exceptions import USER_ALREADY_REGISTERED
|
|
|
|
|
|
def _register_user(testapp, name, **kwargs):
|
|
return testapp.post_json(url_for("user.register_user"), {
|
|
"user": {
|
|
"username": "mo" + name,
|
|
"email": "mo" + name + "@mo.mo",
|
|
"password": "momo"
|
|
}
|
|
}, **kwargs)
|
|
|
|
|
|
class TestAuthenticate:
|
|
|
|
def test_register_user(self, testapp):
|
|
resp = _register_user(testapp, 'register_user')
|
|
assert resp.json['user']['email'] == 'moregister_user@mo.mo'
|
|
assert resp.json['user']['token'] != 'None'
|
|
assert resp.json['user']['token'] != ''
|
|
|
|
def test_user_login(self, testapp):
|
|
_register_user(testapp, 'login')
|
|
|
|
resp = testapp.post_json(url_for('user.login_user'), {'user': {
|
|
'email': 'mologin@mo.mo',
|
|
'password': 'momo'
|
|
}})
|
|
|
|
assert resp.json['user']['email'] == 'mologin@mo.mo'
|
|
assert resp.json['user']['token'] != 'None'
|
|
assert resp.json['user']['token'] != ''
|
|
|
|
def test_get_user(self, testapp):
|
|
resp = _register_user(testapp, 'getUser')
|
|
token = str(resp.json['user']['token'])
|
|
resp = testapp.get(url_for('user.get_user'), headers={
|
|
'Authorization': 'Token {}'.format(token)
|
|
})
|
|
assert resp.json['user']['email'] == 'mogetUser@mo.mo'
|
|
assert resp.json['user']['token'] == token
|
|
|
|
def test_register_already_registered_user(self, testapp):
|
|
_register_user(testapp, 'already_register')
|
|
resp = _register_user(testapp, 'already_register', expect_errors=True)
|
|
assert resp.status_int == 422
|
|
assert resp.json == USER_ALREADY_REGISTERED['message']
|
|
|
|
def test_update_user(self, testapp):
|
|
resp = _register_user(testapp, 'update')
|
|
token = str(resp.json['user']['token'])
|
|
resp = testapp.put_json(url_for('user.update_user'), {
|
|
'user': {
|
|
'email': 'meh@mo.mo',
|
|
'bio': 'I\'m a simple man',
|
|
'password': 'hmm'
|
|
}
|
|
}, headers={
|
|
'Authorization': 'Token {}'.format(token)
|
|
})
|
|
assert resp.json['user']['bio'] == 'I\'m a simple man'
|
|
assert resp.json['user']['email'] == 'meh@mo.mo'
|