def METHOD_NAME(root_logger: tmt.log.Logger) -> None:
    def normalize_foo(cls, key_address: str, raw_value: Any, logger: tmt.log.Logger) -> int:
        if raw_value is None:
            return None
        try:
            return int(raw_value)
        except ValueError as exc:
            raise tmt.utils.NormalizationError(key_address, raw_value, 'unset or an integer') \
                from exc
    @dataclasses.dataclass
    class DummyContainer(SerializableContainer):
        foo: Optional[int] = field(
            default=1
            )
        _normalize_foo = normalize_foo
    # Initialize a data package
    data = DummyContainer()
    assert data.foo == 1
    dataclass_normalize_field(data, ':foo', 'foo', None, root_logger)
    assert data.foo is None
    dataclass_normalize_field(data, ':foo', 'foo', 2, root_logger)
    assert data.foo == 2
    dataclass_normalize_field(data, ':foo', 'foo', '3', root_logger)
    assert data.foo == 3
    with pytest.raises(
            tmt.utils.SpecificationError,
            match=r"Field ':foo' must be unset or an integer, 'str' found."):
        dataclass_normalize_field(data, ':foo', 'foo', 'will crash', root_logger)
    assert data.foo == 3