File: test_collection_extender.py

package info (click to toggle)
python-polyfactory 2.22.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,892 kB
  • sloc: python: 11,338; makefile: 103; sh: 37
file content (77 lines) | stat: -rw-r--r-- 2,339 bytes parent folder | download
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from typing import TYPE_CHECKING, Dict, FrozenSet, List, Set, Tuple

import pytest

from polyfactory.collection_extender import CollectionExtender

if TYPE_CHECKING:
    from typing import Any

pytestmark = pytest.mark.parametrize("number_of_args", [0, 1, 3])


def test_tuple_extender(number_of_args: int) -> None:
    annotation_alias: Any = Tuple[int, ...]
    type_args = (int, ...)

    extended_type_args = CollectionExtender.extend_type_args(annotation_alias, type_args, number_of_args)

    assert extended_type_args == (int,) * number_of_args


def test_tuple_extender__constant_length(number_of_args: int) -> None:
    annotation_alias: Any = Tuple[int, int, int]
    type_args = (int, int, int, int)

    extended_type_args = CollectionExtender.extend_type_args(annotation_alias, type_args, number_of_args)

    assert extended_type_args == (int, int, int, int)


def test_tuple_extender__not_typed(number_of_args: int) -> None:
    annotation_alias: Any = Tuple
    type_args = ()

    extended_type_args = CollectionExtender.extend_type_args(annotation_alias, type_args, number_of_args)

    assert extended_type_args == ()


def test_list_extender(number_of_args: int) -> None:
    annotation_alias: Any = List[int]
    type_args = (int,)

    extended_type_args = CollectionExtender.extend_type_args(annotation_alias, type_args, number_of_args)

    assert extended_type_args == (int,) * number_of_args


def test_set_extender(number_of_args: int) -> None:
    class Dummy: ...

    annotation_alias: Any = Set[Dummy]
    type_args = (Dummy,)

    extended_type_args = CollectionExtender.extend_type_args(annotation_alias, type_args, number_of_args)

    assert extended_type_args == (Dummy,) * number_of_args


def test_frozen_set_extender(number_of_args: int) -> None:
    class Dummy: ...

    annotation_alias: Any = FrozenSet[Dummy]
    type_args = (Dummy,)

    extended_type_args = CollectionExtender.extend_type_args(annotation_alias, type_args, number_of_args)

    assert extended_type_args == (Dummy,) * number_of_args


def test_dict_extender(number_of_args: int) -> None:
    annotation_alias: Any = Dict[str, int]
    type_args = (str, int)

    extended_type_args = CollectionExtender.extend_type_args(annotation_alias, type_args, number_of_args)

    assert extended_type_args == (str, int) * number_of_args