You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
3.6 KiB
Python

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT
from rest_framework.test import APITestCase, APIClient
from rest_framework import status
from django.conf import settings
class UserAgreementsTest(APITestCase):
def setUp(self):
self.client = APIClient()
self.user_agreements = settings.RESTRICTIONS['user_agreements']
settings.RESTRICTIONS['user_agreements'] = [
{
'name': 'agreement_1',
'display_text': 'some display text 1',
'url': 'https://example.com',
'required': True,
},
{
'name': 'agreement_2',
'display_text': 'some display text 2',
'url': 'https://example2.com',
'required': True,
},
{
'name': 'agreement_3',
'display_text': 'some display text 3',
'url': 'https://example3.com',
'required': False,
},
]
def tearDown(self):
settings.RESTRICTIONS['user_agreements'] = self.user_agreements
def _get_user_agreements(self):
response = self.client.get('/api/v1/restrictions/user-agreements')
assert response.status_code == status.HTTP_200_OK
for agreements in response.data:
assert 'name' in agreements, agreements['name']
assert 'displayText' in agreements
assert 'required' in agreements
return response.data
def _register_user(self, data):
response = self.client.post('/api/v1/auth/register', data=data, format="json")
return response
def test_user_agreements(self):
self._get_user_agreements()
def test_register_user_with_required_confirmations(self):
agreements = self._get_user_agreements()
data = {
'username': 'some_username1',
'first_name': 'some first name 1',
'last_name': 'some last name 1',
'email': 'user1@example.com',
'password1': 'FnvL4YdF24NAmnQ8',
'password2': 'FnvL4YdF24NAmnQ8',
'confirmations':[],
}
for agreement in agreements:
if agreement['required']:
data['confirmations'].append({
'name': agreement['name'],
'value': True,
})
response = self._register_user(data)
assert response.status_code == status.HTTP_201_CREATED
def test_register_user_without_confirmations(self):
data = {
'username': 'some_username2',
'first_name': 'some first name 2',
'last_name': 'some last name 2',
'email': 'user2@example.com',
'password1': 'FnvL4YdF24NAmnQ8',
'password2': 'FnvL4YdF24NAmnQ8',
'confirmations':[],
}
response = self._register_user(data)
assert response.status_code == status.HTTP_400_BAD_REQUEST
def test_register_user_with_all_confirmations(self):
agreements = self._get_user_agreements()
data = {
'username': 'some_username3',
'first_name': 'some first name 3',
'last_name': 'some last name 3',
'email': 'user3@example.com',
'password1': 'FnvL4YdF24NAmnQ8',
'password2': 'FnvL4YdF24NAmnQ8',
'confirmations':[],
}
for agreement in agreements:
data['confirmations'].append({
'name': agreement['name'],
'value': True,
})
response = self._register_user(data)
assert response.status_code == status.HTTP_201_CREATED