aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/szurubooru/func/mime.py1
-rw-r--r--server/szurubooru/tests/assets/text.txt1
-rw-r--r--server/szurubooru/tests/func/test_mime.py16
3 files changed, 18 insertions, 0 deletions
diff --git a/server/szurubooru/func/mime.py b/server/szurubooru/func/mime.py
index 76d6e28..54fe225 100644
--- a/server/szurubooru/func/mime.py
+++ b/server/szurubooru/func/mime.py
@@ -33,6 +33,7 @@ def get_extension(mime_type):
'image/png': 'png',
'video/mp4': 'mp4',
'video/webm': 'webm',
+ 'application/octet-stream': 'dat',
}
return extension_map.get((mime_type or '').strip().lower(), None)
diff --git a/server/szurubooru/tests/assets/text.txt b/server/szurubooru/tests/assets/text.txt
new file mode 100644
index 0000000..ce01362
--- /dev/null
+++ b/server/szurubooru/tests/assets/text.txt
@@ -0,0 +1 @@
+hello
diff --git a/server/szurubooru/tests/func/test_mime.py b/server/szurubooru/tests/func/test_mime.py
index 1d5a13a..eaf6989 100644
--- a/server/szurubooru/tests/func/test_mime.py
+++ b/server/szurubooru/tests/func/test_mime.py
@@ -9,10 +9,26 @@ from szurubooru.func import mime
('png.png', 'image/png'),
('jpeg.jpg', 'image/jpeg'),
('gif.gif', 'image/gif'),
+ ('text.txt', 'application/octet-stream'),
])
def test_get_mime_type(read_asset, input_path, expected_mime_type):
assert mime.get_mime_type(read_asset(input_path)) == expected_mime_type
+def test_get_mime_type_for_empty_file():
+ assert mime.get_mime_type(b'') == 'application/octet-stream'
+
+@pytest.mark.parametrize('mime_type,expected_extension', [
+ ('video/mp4', 'mp4'),
+ ('video/webm', 'webm'),
+ ('application/x-shockwave-flash', 'swf'),
+ ('image/png', 'png'),
+ ('image/jpeg', 'jpg'),
+ ('image/gif', 'gif'),
+ ('application/octet-stream', 'dat'),
+])
+def test_get_extension(mime_type, expected_extension):
+ assert mime.get_extension(mime_type) == expected_extension
+
@pytest.mark.parametrize('input_mime_type,expected_state', [
('application/x-shockwave-flash', True),
('APPLICATION/X-SHOCKWAVE-FLASH', True),

© 2015 - 2026 Jakob L. Kreuze