authentik.admin.files.backends.tests.test_passthrough_backend
Test passthrough backend
1"""Test passthrough backend""" 2 3from django.test import TestCase 4 5from authentik.admin.files.backends.passthrough import PassthroughBackend 6from authentik.admin.files.usage import FileUsage 7 8 9class TestPassthroughBackend(TestCase): 10 """Test PassthroughBackend class""" 11 12 def setUp(self): 13 """Set up test fixtures""" 14 self.backend = PassthroughBackend(FileUsage.MEDIA) 15 16 def test_allowed_usages(self): 17 """Test that PassthroughBackend only supports MEDIA usage""" 18 self.assertEqual(self.backend.allowed_usages, [FileUsage.MEDIA]) 19 20 def test_supports_file_path_font_awesome(self): 21 """Test supports_file_path returns True for Font Awesome icons""" 22 self.assertTrue(self.backend.supports_file("fa://user")) 23 self.assertTrue(self.backend.supports_file("fa://home")) 24 self.assertTrue(self.backend.supports_file("fa://shield")) 25 26 def test_supports_file_path_http(self): 27 """Test supports_file_path returns True for HTTP URLs""" 28 self.assertTrue(self.backend.supports_file("http://example.com/icon.png")) 29 self.assertTrue(self.backend.supports_file("http://cdn.example.com/logo.svg")) 30 31 def test_supports_file_path_https(self): 32 """Test supports_file_path returns True for HTTPS URLs""" 33 self.assertTrue(self.backend.supports_file("https://example.com/icon.png")) 34 self.assertTrue(self.backend.supports_file("https://cdn.example.com/logo.svg")) 35 36 def test_supports_file_path_false(self): 37 """Test supports_file_path returns False for regular paths""" 38 self.assertFalse(self.backend.supports_file("icon.png")) 39 self.assertFalse(self.backend.supports_file("/static/icon.png")) 40 self.assertFalse(self.backend.supports_file("media/logo.svg")) 41 self.assertFalse(self.backend.supports_file("")) 42 43 def test_supports_file_path_invalid_scheme(self): 44 """Test supports_file_path returns False for invalid schemes""" 45 self.assertFalse(self.backend.supports_file("ftp://example.com/file.png")) 46 self.assertFalse(self.backend.supports_file("file:///path/to/file.png")) 47 self.assertFalse(self.backend.supports_file("data:image/png;base64,abc123")) 48 49 def test_list_files(self): 50 """Test list_files returns empty generator""" 51 files = list(self.backend.list_files()) 52 self.assertEqual(files, []) 53 54 def test_file_url(self): 55 """Test file_url returns the URL as-is""" 56 url = "https://example.com/icon.png" 57 self.assertEqual(self.backend.file_url(url), url) 58 59 def test_file_url_font_awesome(self): 60 """Test file_url returns Font Awesome URL as-is""" 61 url = "fa://user" 62 self.assertEqual(self.backend.file_url(url), url) 63 64 def test_file_url_http(self): 65 """Test file_url returns HTTP URL as-is""" 66 url = "http://cdn.example.com/logo.svg" 67 self.assertEqual(self.backend.file_url(url), url)
class
TestPassthroughBackend(django.test.testcases.TestCase):
10class TestPassthroughBackend(TestCase): 11 """Test PassthroughBackend class""" 12 13 def setUp(self): 14 """Set up test fixtures""" 15 self.backend = PassthroughBackend(FileUsage.MEDIA) 16 17 def test_allowed_usages(self): 18 """Test that PassthroughBackend only supports MEDIA usage""" 19 self.assertEqual(self.backend.allowed_usages, [FileUsage.MEDIA]) 20 21 def test_supports_file_path_font_awesome(self): 22 """Test supports_file_path returns True for Font Awesome icons""" 23 self.assertTrue(self.backend.supports_file("fa://user")) 24 self.assertTrue(self.backend.supports_file("fa://home")) 25 self.assertTrue(self.backend.supports_file("fa://shield")) 26 27 def test_supports_file_path_http(self): 28 """Test supports_file_path returns True for HTTP URLs""" 29 self.assertTrue(self.backend.supports_file("http://example.com/icon.png")) 30 self.assertTrue(self.backend.supports_file("http://cdn.example.com/logo.svg")) 31 32 def test_supports_file_path_https(self): 33 """Test supports_file_path returns True for HTTPS URLs""" 34 self.assertTrue(self.backend.supports_file("https://example.com/icon.png")) 35 self.assertTrue(self.backend.supports_file("https://cdn.example.com/logo.svg")) 36 37 def test_supports_file_path_false(self): 38 """Test supports_file_path returns False for regular paths""" 39 self.assertFalse(self.backend.supports_file("icon.png")) 40 self.assertFalse(self.backend.supports_file("/static/icon.png")) 41 self.assertFalse(self.backend.supports_file("media/logo.svg")) 42 self.assertFalse(self.backend.supports_file("")) 43 44 def test_supports_file_path_invalid_scheme(self): 45 """Test supports_file_path returns False for invalid schemes""" 46 self.assertFalse(self.backend.supports_file("ftp://example.com/file.png")) 47 self.assertFalse(self.backend.supports_file("file:///path/to/file.png")) 48 self.assertFalse(self.backend.supports_file("data:image/png;base64,abc123")) 49 50 def test_list_files(self): 51 """Test list_files returns empty generator""" 52 files = list(self.backend.list_files()) 53 self.assertEqual(files, []) 54 55 def test_file_url(self): 56 """Test file_url returns the URL as-is""" 57 url = "https://example.com/icon.png" 58 self.assertEqual(self.backend.file_url(url), url) 59 60 def test_file_url_font_awesome(self): 61 """Test file_url returns Font Awesome URL as-is""" 62 url = "fa://user" 63 self.assertEqual(self.backend.file_url(url), url) 64 65 def test_file_url_http(self): 66 """Test file_url returns HTTP URL as-is""" 67 url = "http://cdn.example.com/logo.svg" 68 self.assertEqual(self.backend.file_url(url), url)
Test PassthroughBackend class
def
setUp(self):
13 def setUp(self): 14 """Set up test fixtures""" 15 self.backend = PassthroughBackend(FileUsage.MEDIA)
Set up test fixtures
def
test_allowed_usages(self):
17 def test_allowed_usages(self): 18 """Test that PassthroughBackend only supports MEDIA usage""" 19 self.assertEqual(self.backend.allowed_usages, [FileUsage.MEDIA])
Test that PassthroughBackend only supports MEDIA usage
def
test_supports_file_path_font_awesome(self):
21 def test_supports_file_path_font_awesome(self): 22 """Test supports_file_path returns True for Font Awesome icons""" 23 self.assertTrue(self.backend.supports_file("fa://user")) 24 self.assertTrue(self.backend.supports_file("fa://home")) 25 self.assertTrue(self.backend.supports_file("fa://shield"))
Test supports_file_path returns True for Font Awesome icons
def
test_supports_file_path_http(self):
27 def test_supports_file_path_http(self): 28 """Test supports_file_path returns True for HTTP URLs""" 29 self.assertTrue(self.backend.supports_file("http://example.com/icon.png")) 30 self.assertTrue(self.backend.supports_file("http://cdn.example.com/logo.svg"))
Test supports_file_path returns True for HTTP URLs
def
test_supports_file_path_https(self):
32 def test_supports_file_path_https(self): 33 """Test supports_file_path returns True for HTTPS URLs""" 34 self.assertTrue(self.backend.supports_file("https://example.com/icon.png")) 35 self.assertTrue(self.backend.supports_file("https://cdn.example.com/logo.svg"))
Test supports_file_path returns True for HTTPS URLs
def
test_supports_file_path_false(self):
37 def test_supports_file_path_false(self): 38 """Test supports_file_path returns False for regular paths""" 39 self.assertFalse(self.backend.supports_file("icon.png")) 40 self.assertFalse(self.backend.supports_file("/static/icon.png")) 41 self.assertFalse(self.backend.supports_file("media/logo.svg")) 42 self.assertFalse(self.backend.supports_file(""))
Test supports_file_path returns False for regular paths
def
test_supports_file_path_invalid_scheme(self):
44 def test_supports_file_path_invalid_scheme(self): 45 """Test supports_file_path returns False for invalid schemes""" 46 self.assertFalse(self.backend.supports_file("ftp://example.com/file.png")) 47 self.assertFalse(self.backend.supports_file("file:///path/to/file.png")) 48 self.assertFalse(self.backend.supports_file("data:image/png;base64,abc123"))
Test supports_file_path returns False for invalid schemes
def
test_list_files(self):
50 def test_list_files(self): 51 """Test list_files returns empty generator""" 52 files = list(self.backend.list_files()) 53 self.assertEqual(files, [])
Test list_files returns empty generator
def
test_file_url(self):
55 def test_file_url(self): 56 """Test file_url returns the URL as-is""" 57 url = "https://example.com/icon.png" 58 self.assertEqual(self.backend.file_url(url), url)
Test file_url returns the URL as-is