Packages
testcontainers
1.12.0
2.3.1
2.3.0
2.2.0
2.1.0
2.1.0-rc1
2.0.0
2.0.0-rc3
2.0.0-rc2
2.0.0-rc
1.14.1
1.14.0
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.12.0
1.11.8
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.1
1.3.0
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-beta.1
1.0.0-beta
0.9.3
0.9.2
0.9.1
0.9.0
Testcontainers is an Elixir library that supports ExUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
Current section
Files
Jump to
Current section
Files
docker_engine_api/connection.ex
# NOTE: This file is auto generated by OpenAPI Generator 7.0.1 (https://openapi-generator.tech).
# Do not edit this file manually.
defmodule DockerEngineAPI.Connection do
@moduledoc """
Handle Tesla connections for DockerEngineAPI.
"""
@default_options [
base_url: "http://localhost/v1.43",
adapter: Tesla.Adapter.Hackney
]
@typedoc """
The list of options that can be passed to new/1.
- `base_url`: Overrides the base URL on a per-client basis.
- `user_agent`: Overrides the User-Agent header.
"""
@type options :: [
{:base_url, String.t()},
{:user_agent, String.t()}
]
@doc "Forward requests to Tesla."
@spec request(Tesla.Client.t(), [Tesla.option()]) :: Tesla.Env.result()
defdelegate request(client, options), to: Tesla
@doc """
Configure a client that may have authentication.
### Parameters
- `options`: a keyword list of OpenAPIPetstore.Connection.options.
### Returns
Tesla.Env.client
"""
@spec new(options) :: Tesla.Env.client()
def new(options \\ []) when is_list(options) do
options = @default_options |> Keyword.merge(options)
options
|> Keyword.merge(options)
|> middleware()
|> Tesla.client(adapter(options))
end
@doc """
Returns fully configured middleware for passing to Tesla.client/2.
"""
@spec middleware(options) :: [Tesla.Client.middleware()]
def middleware(options \\ []) do
base_url = Keyword.get(options, :base_url)
tesla_options = get_tesla_options()
middleware = Keyword.get(tesla_options, :middleware, [])
json_engine = Keyword.get(tesla_options, :json, Jason)
user_agent =
Keyword.get(
options,
:user_agent,
Keyword.get(
tesla_options,
:user_agent,
"openapi-generator - DockerEngineAPI 1.43 - elixir"
)
)
[
{Tesla.Middleware.BaseUrl, base_url},
{Tesla.Middleware.Headers, [{"user-agent", user_agent}]},
{Tesla.Middleware.EncodeJson, engine: json_engine}
| middleware
]
end
def get_tesla_options, do: Application.get_env(:tesla, __MODULE__, [])
@doc """
Returns the default adapter for this API.
"""
def adapter(options \\ []) do
case Keyword.get(
options,
:adapter,
Keyword.get(get_tesla_options(), :adapter, nil)
) do
Tesla.Adapter.Hackney ->
{Tesla.Adapter.Hackney, [recv_timeout: Keyword.get(options, :recv_timeout, 1_000)]}
other ->
other
end
end
end