# Copyright 2019 The gRPC Authors
#
# 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.

filegroup(
    name = "_credentials_files",
    testonly = 1,
    srcs = [
        "credentials/localhost.crt",
        "credentials/localhost.key",
        "credentials/root.crt",
    ],
)

py_library(
    name = "_credentials",
    testonly = 1,
    srcs = ["_credentials.py"],
    data = [":_credentials_files"],
)

py_binary(
    name = "customized_auth_client",
    testonly = 1,
    srcs = ["customized_auth_client.py"],
    data = ["helloworld.proto"],
    python_version = "PY3",
    deps = [
        ":_credentials",
        "//src/python/grpcio/grpc:grpcio",
        "//tools/distrib/python/grpcio_tools:grpc_tools",
    ],
)

py_binary(
    name = "customized_auth_server",
    testonly = 1,
    srcs = ["customized_auth_server.py"],
    data = ["helloworld.proto"],
    python_version = "PY3",
    deps = [
        ":_credentials",
        "//src/python/grpcio/grpc:grpcio",
        "//tools/distrib/python/grpcio_tools:grpc_tools",
    ],
)

py_binary(
    name = "async_customized_auth_client",
    testonly = 1,
    srcs = ["async_customized_auth_client.py"],
    data = ["helloworld.proto"],
    imports = ["."],
    python_version = "PY3",
    deps = [
        ":_credentials",
        "//src/python/grpcio/grpc:grpcio",
        "//tools/distrib/python/grpcio_tools:grpc_tools",
    ],
)

py_binary(
    name = "async_customized_auth_server",
    testonly = 1,
    srcs = ["async_customized_auth_server.py"],
    data = ["helloworld.proto"],
    imports = ["."],
    python_version = "PY3",
    deps = [
        ":_credentials",
        "//src/python/grpcio/grpc:grpcio",
        "//tools/distrib/python/grpcio_tools:grpc_tools",
    ],
)

py_test(
    name = "_auth_example_test",
    srcs = ["test/_auth_example_test.py"],
    python_version = "PY3",
    deps = [
        ":_credentials",
        ":async_customized_auth_client",
        ":async_customized_auth_server",
        ":customized_auth_client",
        ":customized_auth_server",
        "//src/python/grpcio/grpc:grpcio",
        "//tools/distrib/python/grpcio_tools:grpc_tools",
    ],
)
