# Copyright 2026 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/python/python_host_test.gni")
import("//build/python/python_library.gni")

group("tests") {
  testonly = true
  deps = [
    ":client_test($host_toolchain)",
    "zxdb:tests",
  ]
}

if (is_host) {
  python_library("lib") {
    library_name = "pydap"
    sources = [
      "__init__.py",
      "client.py",
      "dap_types.py",
      "models.py",
    ]
    deps = [ "//third_party/pylibs/pydantic" ]
  }

  python_host_test("client_test") {
    main_source = "tests/client_test.py"
    deps = [ ":lib" ]

    # Explicitly depend on pydantic-core's test_data. This is to ensure that the
    # module's DSO is bundled together with our test so the top-level pydantic
    # module loads correctly.
    test_data_deps = [ "//prebuilt/third_party/pydantic-core:test_data" ]
  }
}
