# Copyright 2025 Elasticsearch B.V.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import logging

from core.runner import parse_runtime_arguments

handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter("%(name)s - %(message)s"))

logger = logging.getLogger("elastic.pipes")
logger.addHandler(handler)
# logger.setLevel("DEBUG"


def test_parse_runtime_arguments():
    tc = [
        (
            ["key"],
            {"key": None},
        ),
        (
            ["key="],
            {"key": None},
        ),
        (
            ["key=None"],
            {"key": None},
        ),
        (
            ["key=True"],
            {"key": True},
        ),
        (
            ["key=False"],
            {"key": False},
        ),
        (
            ["key=''"],
            {"key": ""},
        ),
        (
            ["key=val"],
            {"key": "val"},
        ),
        (
            ["key=3"],
            {"key": 3},
        ),
        (
            ["key=3.14"],
            {"key": 3.14},
        ),
        (
            ["key=['a', 3, 3.14]"],
            {"key": ["a", 3, 3.14]},
        ),
        (
            ["key={'a': 3, 'pi': 3.14}"],
            {"key": {"a": 3, "pi": 3.14}},
        ),
    ]

    for args, expected in tc:
        assert parse_runtime_arguments(args) == expected
