"""This file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright information and LICENSE for a copy of the license.
|
"""
|
|
import pytest
|
|
|
@pytest.mark.django_db
|
def test_signup_setting(business_client, client, settings):
|
settings.DISABLE_SIGNUP_WITHOUT_LINK = True
|
response = client.post('/user/signup', data={'email': 'test_user@example.com', 'password': 'test_password'})
|
assert response.status_code == 403
|
|
response = business_client.get('/api/invite')
|
|
invite_url = response.json()['invite_url']
|
|
response = client.post(invite_url, data={'email': 'test_user@example.com', 'password': 'test_password'})
|
assert response.status_code == 302
|
|
|
@pytest.mark.django_db
|
def test_reset_token(business_client, client, settings):
|
settings.DISABLE_SIGNUP_WITHOUT_LINK = True
|
|
# get invite_url link and check it works
|
response = business_client.get('/api/invite')
|
invite_url = response.json()['invite_url']
|
response = client.post(invite_url, data={'email': 'test_user@example.com', 'password': 'test_password'})
|
assert response.status_code == 302
|
|
response = business_client.post('/api/invite/reset-token')
|
new_invite_url = response.json()['invite_url']
|
|
# after reset old link returns permission denied
|
client.logout()
|
response = client.post(invite_url, data={'email': 'test_user1@example.com', 'password': 'test_password'})
|
assert response.status_code == 403, response.content
|
|
# but new one works fine
|
response = client.post(new_invite_url, data={'email': 'test_user2@example.com', 'password': 'test_password'})
|
assert response.status_code == 302
|
|
|
@pytest.mark.django_db
|
def test_reset_token_not_valid(business_client, client, settings):
|
settings.DISABLE_SIGNUP_WITHOUT_LINK = False
|
|
# disallow if token and does not match
|
response = client.post(
|
'/user/signup/?token=54321abce', data={'email': 'test_user1@example.com', 'password': 'test_password'}
|
)
|
assert response.status_code == 403, response.content
|
|
|
@pytest.mark.django_db
|
def test_token_get_not_post_shows_form(business_client, client, settings):
|
settings.DISABLE_SIGNUP_WITHOUT_LINK = True
|
|
# can't bypass post
|
response = business_client.get('/api/invite')
|
invite_url = response.json()['invite_url']
|
response = client.get(f'{invite_url}&email=test_user@example.com&password=test_password')
|
assert response.status_code == 200, response.content
|
assert str(response.content).find('Create Account') != -1
|