As discussed in  https://github.com/apache/airflow/pull/15534#discussion_r620500075, we could possibly rewrite Beam Hook to remove the need of storing state in it.
@pytest.mark.parametrize(
        "options, expected_args",
        [
            ({"key": "val"}, ["--key=val"]),
            ({"key": None}, ["--key"]),
            ({"key": True}, ["--key"]),
            ({"key": False}, ["--key=False"]),
            ({"key": ["a", "b", "c"]}, ["--key=a", "--key=b", "--key=c"]),
        ],
    )
    def test_beam_options_to_args(self, options, expected_args):
        args = beam_options_to_args(options)
        assert args == expected_args