mirror of
https://github.com/simple-login/app.git
synced 2024-11-18 01:40:38 +01:00
9abb8aa47f
* Validate user uploaded image * Fix test/data path detection
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
from app.image_validation import ImageFormat, detect_image_format
|
|
from pathlib import Path
|
|
|
|
|
|
def get_path_to_static_dir() -> Path:
|
|
this_path = Path(__file__)
|
|
repo_root_path = this_path.parent.parent
|
|
return repo_root_path.joinpath("static")
|
|
|
|
|
|
def read_static_file_contents(filename: str) -> bytes:
|
|
image_path = get_path_to_static_dir().joinpath(filename)
|
|
with open(image_path.as_posix(), "rb") as f:
|
|
return f.read()
|
|
|
|
|
|
def read_test_data_file_contents(filename: str) -> bytes:
|
|
this_path = Path(__file__)
|
|
test_data_path = this_path.parent.joinpath("data")
|
|
file_path = test_data_path.joinpath(filename)
|
|
with open(file_path.as_posix(), "rb") as f:
|
|
return f.read()
|
|
|
|
|
|
def test_non_image_file_returns_unknown():
|
|
contents = read_static_file_contents("local-storage-polyfill.js")
|
|
assert detect_image_format(contents) is ImageFormat.Unknown
|
|
|
|
|
|
def test_png_file_is_detected():
|
|
contents = read_static_file_contents("logo.png")
|
|
assert detect_image_format(contents) is ImageFormat.Png
|
|
|
|
|
|
def test_jpg_file_is_detected():
|
|
contents = read_test_data_file_contents("1px.jpg")
|
|
assert detect_image_format(contents) is ImageFormat.Jpg
|
|
|
|
|
|
def test_webp_file_is_detected():
|
|
contents = read_test_data_file_contents("1px.webp")
|
|
assert detect_image_format(contents) is ImageFormat.Webp
|
|
|
|
|
|
def test_svg_file_is_detected():
|
|
contents = read_static_file_contents("icon.svg")
|
|
assert detect_image_format(contents) is ImageFormat.Svg
|