# Copyright OpenSearch Contributors
# SPDX-License-Identifier: Apache-2.0
#
# The OpenSearch Contributors require contributions made to
# this file be licensed under the Apache-2.0 license or a
# compatible open source license.


from manifests.test_manifest import TestManifest
from test_workflow.bwc_test.bwc_test_runner import BwcTestRunner
from test_workflow.bwc_test.bwc_test_runner_opensearch import BwcTestRunnerOpenSearch
from test_workflow.bwc_test.bwc_test_runner_opensearch_dashboards import BwcTestRunnerOpenSearchDashboards
from test_workflow.test_args import TestArgs


class BwcTestRunners:
    RUNNERS = {
        "OpenSearch": BwcTestRunnerOpenSearch,
        "OpenSearch Dashboards": BwcTestRunnerOpenSearchDashboards
    }

    @classmethod
    def from_test_manifest(cls, args: TestArgs, test_manifest: TestManifest) -> BwcTestRunner:
        return cls.RUNNERS[test_manifest.name](args, test_manifest)