Files
mediacms-user-docs/tests/settings/test_portal_workflow.py
Markos Gogoulos 414aba6ccf tests
tests
2025-07-13 14:20:46 +03:00

98 lines
5.3 KiB
Python

from django.conf import settings
from django.core.files import File
from django.test import TestCase, override_settings
from files.helpers import get_default_state, get_portal_workflow
from files.models import Media
from files.tests import create_account
class TestPortalWorkflow(TestCase):
fixtures = ["fixtures/categories.json", "fixtures/encoding_profiles.json"]
def setUp(self):
self.user = create_account()
self.advanced_user = create_account(username="advanced_user")
self.advanced_user.advancedUser = True
self.advanced_user.save()
def test_default_portal_workflow(self):
"""Test the default portal workflow setting"""
workflow = get_portal_workflow()
self.assertEqual(workflow, settings.PORTAL_WORKFLOW, "get_portal_workflow should return the PORTAL_WORKFLOW setting")
@override_settings(PORTAL_WORKFLOW='public')
def test_public_workflow(self):
"""Test the public workflow setting"""
# Check that get_portal_workflow returns the correct value
self.assertEqual(get_portal_workflow(), 'public', "get_portal_workflow should return 'public'")
# Check that get_default_state returns the correct value
self.assertEqual(get_default_state(), 'public', "get_default_state should return 'public'")
# Check that a new media gets the correct state
# Mock the media_file requirement by patching the save method
with open('fixtures/test_image2.jpg', "rb") as f:
myfile = File(f)
media = Media.objects.create(title="Test Media", description="Test Description", user=self.user, media_file=myfile)
self.assertEqual(media.state, 'public', "Media state should be 'public' in public workflow")
@override_settings(PORTAL_WORKFLOW='unlisted')
def test_unlisted_workflow(self):
"""Test the unlisted workflow setting"""
# Check that get_portal_workflow returns the correct value
self.assertEqual(get_portal_workflow(), 'unlisted', "get_portal_workflow should return 'unlisted'")
# Check that get_default_state returns the correct value
self.assertEqual(get_default_state(), 'unlisted', "get_default_state should return 'unlisted'")
# Check that a new media gets the correct state
# Mock the media_file requirement by patching the save method
with open('fixtures/test_image2.jpg', "rb") as f:
myfile = File(f)
media = Media.objects.create(title="Test Media", description="Test Description", user=self.user, media_file=myfile)
self.assertEqual(media.state, 'unlisted', "Media state should be 'unlisted' in unlisted workflow")
@override_settings(PORTAL_WORKFLOW='private')
def test_private_workflow(self):
"""Test the private workflow setting"""
# Check that get_portal_workflow returns the correct value
self.assertEqual(get_portal_workflow(), 'private', "get_portal_workflow should return 'private'")
# Check that get_default_state returns the correct value
self.assertEqual(get_default_state(), 'private', "get_default_state should return 'private'")
# Check that a new media gets the correct state
# Mock the media_file requirement by patching the save method
with open('fixtures/test_image2.jpg', "rb") as f:
myfile = File(f)
media = Media.objects.create(title="Test Media", description="Test Description", user=self.user, media_file=myfile)
self.assertEqual(media.state, 'private', "Media state should be 'private' in private workflow")
@override_settings(PORTAL_WORKFLOW='private_verified')
def test_private_verified_workflow(self):
"""Test the private_verified workflow setting"""
# Check that get_portal_workflow returns the correct value
self.assertEqual(get_portal_workflow(), 'private_verified', "get_portal_workflow should return 'private_verified'")
# Check that get_default_state returns the correct value for regular user
self.assertEqual(get_default_state(user=self.user), 'private', "get_default_state should return 'private' for regular user")
# Check that get_default_state returns the correct value for advanced user
self.advanced_user.advancedUser = True
self.advanced_user.save()
self.assertEqual(get_default_state(user=self.advanced_user), 'unlisted', "get_default_state should return 'unlisted' for advanced user")
# Check that a new media gets the correct state for regular user
# Mock the media_file requirement by patching the save method
with open('fixtures/test_image2.jpg', "rb") as f:
myfile = File(f)
media = Media.objects.create(title="Test Media", description="Test Description", user=self.user, media_file=myfile)
self.assertEqual(media.state, 'private', "Media state should be 'private' for regular user in private_verified workflow")
# Check that a new media gets the correct state for advanced user
with open('fixtures/test_image2.jpg', "rb") as f:
myfile = File(f)
media = Media.objects.create(title="Advanced Test Media", description="Test Description", user=self.advanced_user, media_file=myfile)
self.assertEqual(media.state, 'unlisted', "Media state should be 'unlisted' for advanced user in private_verified workflow")