1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""
:Copyright: 2014-2025 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""

from datetime import datetime

import pytest

from byceps.services.user.dbmodels.avatar import DbUserAvatar
from byceps.util.image.image_type import ImageType


@pytest.mark.parametrize(
    ('database_value', 'expected'),
    [
        ('gif', ImageType.gif),
        ('jpeg', ImageType.jpeg),
        ('png', ImageType.png),
        ('webp', ImageType.webp),
    ],
)
def test_hybrid_image_type_getter(database_value, expected):
    avatar = create_avatar()

    avatar._image_type = database_value

    assert avatar.image_type == expected


@pytest.mark.parametrize(
    ('image_type', 'expected'),
    [
        (ImageType.gif, 'gif'),
        (ImageType.jpeg, 'jpeg'),
        (ImageType.png, 'png'),
        (ImageType.webp, 'webp'),
    ],
)
def test_hybrid_image_type_setter(image_type, expected):
    avatar = create_avatar()

    avatar.image_type = image_type

    assert avatar._image_type == expected


# helpers


def create_avatar() -> DbUserAvatar:
    created_at = datetime.utcnow()
    return DbUserAvatar(created_at, ImageType.jpeg)