Skip to content

Commit

Permalink
consolidate _node_wrap tests (#906)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jasha10 committed May 2, 2022
1 parent 40a7be5 commit ccd9fba
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 63 deletions.
62 changes: 0 additions & 62 deletions tests/test_nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -434,68 +434,6 @@ def test_legal_assignment_enum(
node_type(enum_type)


class DummyEnum(Enum):
FOO = 1


@mark.parametrize("is_optional", [True, False])
@mark.parametrize(
"ref_type, value, expected_type",
[
(Any, 10, AnyNode),
(DummyEnum, DummyEnum.FOO, EnumNode),
(int, 42, IntegerNode),
(bytes, b"\xf0\xf1\xf2", BytesNode),
(float, 3.1415, FloatNode),
(bool, True, BooleanNode),
(str, "foo", StringNode),
],
)
def test_node_wrap(
ref_type: type, is_optional: bool, value: Any, expected_type: Any
) -> None:
from omegaconf.omegaconf import _node_wrap

ret = _node_wrap(
ref_type=ref_type,
value=value,
is_optional=is_optional,
parent=None,
key=None,
)
assert ret._metadata.ref_type == ref_type
assert type(ret) == expected_type
assert ret == value

if is_optional:
ret = _node_wrap(
ref_type=ref_type,
value=None,
is_optional=is_optional,
parent=None,
key=None,
)
assert type(ret) == expected_type
# noinspection PyComparisonWithNone
assert ret == None # noqa E711


def test_node_wrap_illegal_type() -> None:
class UserClass:
pass

from omegaconf.omegaconf import _node_wrap

with raises(ValidationError):
_node_wrap(
ref_type=UserClass,
value=UserClass(),
is_optional=False,
parent=None,
key=None,
)


@mark.parametrize(
"obj",
[
Expand Down
64 changes: 63 additions & 1 deletion tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,52 @@
from tests import Color, ConcretePlugin, Dataframe, IllegalType, Plugin, User


class DummyEnum(Enum):
FOO = 1


@mark.parametrize("is_optional", [True, False])
@mark.parametrize(
"ref_type, value, expected_type",
[
(Any, 10, AnyNode),
(DummyEnum, DummyEnum.FOO, EnumNode),
(int, 42, IntegerNode),
(bytes, b"\xf0\xf1\xf2", BytesNode),
(float, 3.1415, FloatNode),
(bool, True, BooleanNode),
(str, "foo", StringNode),
],
)
def test_node_wrap(
ref_type: type, is_optional: bool, value: Any, expected_type: Any
) -> None:
from omegaconf.omegaconf import _node_wrap

ret = _node_wrap(
ref_type=ref_type,
value=value,
is_optional=is_optional,
parent=None,
key=None,
)
assert ret._metadata.ref_type == ref_type
assert type(ret) == expected_type
assert ret == value

if is_optional:
ret = _node_wrap(
ref_type=ref_type,
value=None,
is_optional=is_optional,
parent=None,
key=None,
)
assert type(ret) == expected_type
# noinspection PyComparisonWithNone
assert ret == None # noqa E711


@mark.parametrize(
"target_type, value, expected",
[
Expand Down Expand Up @@ -142,7 +188,7 @@
param(Any, [1, 2, 3], ListConfig(content=[1, 2, 3]), id="list_to_any"),
],
)
def test_node_wrap(target_type: Any, value: Any, expected: Any) -> None:
def test_node_wrap2(target_type: Any, value: Any, expected: Any) -> None:
from omegaconf.omegaconf import _maybe_wrap

if isinstance(expected, Node):
Expand All @@ -163,6 +209,22 @@ def test_node_wrap(target_type: Any, value: Any, expected: Any) -> None:
)


def test_node_wrap_illegal_type() -> None:
class UserClass:
pass

from omegaconf.omegaconf import _node_wrap

with raises(ValidationError):
_node_wrap(
ref_type=UserClass,
value=UserClass(),
is_optional=False,
parent=None,
key=None,
)


class _TestEnum(Enum):
A = 1
B = 2
Expand Down

0 comments on commit ccd9fba

Please sign in to comment.