text: # 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)
  