mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-07-25 01:19:21 +00:00
98 lines
5.3 KiB
Python
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")
|