61 lines
2.6 KiB
Python
61 lines
2.6 KiB
Python
|
from django import forms
|
||
|
from django.dispatch import receiver
|
||
|
from django.core.urlresolvers import reverse
|
||
|
from rest_framework import status
|
||
|
from rest_framework.test import APIClient
|
||
|
|
||
|
from openslides.config.api import config, ConfigCollection, ConfigVariable
|
||
|
from openslides.config.signals import config_signal
|
||
|
from openslides.utils.test import TestCase
|
||
|
|
||
|
|
||
|
class ConfigViewSet(TestCase):
|
||
|
"""
|
||
|
Tests requests to deal with config variables.
|
||
|
"""
|
||
|
def test_retrieve(self):
|
||
|
self.client.login(username='admin', password='admin')
|
||
|
config['test_var_aeW3Quahkah1phahCheo'] = 'test_value_Oovoojieme7eephaed2A'
|
||
|
response = self.client.get(reverse('config-detail', args=['test_var_aeW3Quahkah1phahCheo']))
|
||
|
self.assertEqual(
|
||
|
response.data,
|
||
|
{'key': 'test_var_aeW3Quahkah1phahCheo',
|
||
|
'value': 'test_value_Oovoojieme7eephaed2A'})
|
||
|
|
||
|
def test_update(self):
|
||
|
self.client = APIClient()
|
||
|
self.client.login(username='admin', password='admin')
|
||
|
response = self.client.put(
|
||
|
reverse('config-detail', args=['test_var_Xeiizi7ooH8Thuk5aida']),
|
||
|
{'value': 'test_value_Phohx3oopeichaiTheiw'})
|
||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||
|
self.assertEqual(config['test_var_Xeiizi7ooH8Thuk5aida'], 'test_value_Phohx3oopeichaiTheiw')
|
||
|
|
||
|
def test_update_wrong_datatype(self):
|
||
|
self.client = APIClient()
|
||
|
self.client.login(username='admin', password='admin')
|
||
|
response = self.client.put(
|
||
|
reverse('config-detail', args=['test_var_ohhii4iavoh5Phoh5ahg']),
|
||
|
{'value': 'test_value_string'})
|
||
|
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
|
||
|
self.assertEqual(response.data, {'detail': 'Enter a whole number.'})
|
||
|
|
||
|
|
||
|
@receiver(config_signal, dispatch_uid='set_simple_config_view_integration_config_test')
|
||
|
def set_simple_config_view_integration_config_test(sender, **kwargs):
|
||
|
"""
|
||
|
Sets a simple config view with some config variables but without
|
||
|
grouping.
|
||
|
"""
|
||
|
return ConfigCollection(
|
||
|
title='Config vars for testing',
|
||
|
url='test_url_ieXao5Wae5Duoy6Wohtu',
|
||
|
variables=(ConfigVariable(name='test_var_aeW3Quahkah1phahCheo',
|
||
|
default_value=None),
|
||
|
ConfigVariable(name='test_var_Xeiizi7ooH8Thuk5aida',
|
||
|
default_value='',
|
||
|
form_field=forms.CharField()),
|
||
|
ConfigVariable(name='test_var_ohhii4iavoh5Phoh5ahg',
|
||
|
default_value=0,
|
||
|
form_field=forms.IntegerField())))
|