1
0
Fork 0

Add test for configform

This commit is contained in:
lois Verheij 2025-03-06 11:32:35 +01:00
parent 393ea1e5ff
commit 68c216bcb3

View file

@ -0,0 +1,75 @@
from django.test import TestCase
from django.contrib.auth.models import User
from django.urls import reverse
from panel.models import Configuration, MastodonConfig, PixelfedConfig, PeertubeConfig
class ConfigurationFormTest(TestCase):
def setUp(self):
# Create user
self.username = 'testuser'
self.password = 'securepassword123'
self.user = User.objects.create_user(
username=self.username, password=self.password)
# Retrieve configuration form url
self.config_url = reverse('configuration_form')
# Create configuration attributes
self.mastodon_config = MastodonConfig.objects.create(enable=False)
self.pixelfed_config = PixelfedConfig.objects.create(enable=False)
self.peertube_config = PeertubeConfig.objects.create(enable=False)
# Create configuration object
self.config = Configuration.objects.create(
operator=self.user,
enable=False,
domain='fediversity_eu',
mastodon=self.mastodon_config,
pixelfed=self.pixelfed_config,
)
def test_configuration_form_submission(self):
# Log in
self.client.login(username=self.username, password=self.password)
# Get configuration page
response = self.client.get(self.config_url)
self.assertEqual(response.status_code, 200)
form_data = {
'domain': 'fediversity_eu',
'mastodon_enable': True,
'pixelfed_enable': False,
'peertube_enable': True,
}
# Post config data
response = self.client.post(self.config_url, data=form_data)
# Check if configuration is saved succesfully
self.assertEqual(response.status_code, 302)
self.config.refresh_from_db()
# Check if new values are saved correctly
self.assertTrue(self.config.mastodon.enable)
self.assertFalse(self.config.pixelfed.enable)
self.assertTrue(self.config.peertube.enable)
def test_invalid_configuration_form(self):
# Log in
self.client.login(username=self.username, password=self.password)
# Send invalid form
form_data = {
'domain': '',
'mastodon_enable': True,
'pixelfed_enable': False,
'peertube_enable': True,
}
response = self.client.post(self.config_url, data=form_data)
# Check for error
self.assertFormError(response, 'form', 'domain',
'This field is required.')