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
lib/connection/docker_host_strategy/docker_host_from_properties.ex
defmodule Testcontainers.DockerHostFromPropertiesStrategy do
@moduledoc false
@enforce_keys [:key]
defstruct key: nil, filename: "~/.testcontainers.properties"
defimpl Testcontainers.DockerHostStrategy do
alias Testcontainers.DockerUrl
alias Testcontainers.Util.PropertiesParser
def execute(strategy, _input) do
with {:ok, properties} <- PropertiesParser.read_property_file(strategy.filename),
docker_host <- Map.fetch(properties, strategy.key),
do: handle_docker_host(docker_host, strategy.key)
end
defp handle_docker_host({:ok, docker_host}, key) when is_binary(docker_host) do
case DockerUrl.test_docker_host(docker_host) do
:ok ->
{:ok, docker_host}
{:error, reason} ->
{:error, testcontainer_host_from_properties: {reason, key}}
end
end
defp handle_docker_host(:error, key),
do: {:error, testcontainer_host_from_properties: {:property_not_found, key}}
end
end