Packages
ecto
1.1.9
3.14.1
3.14.0
3.13.6
3.13.5
3.13.4
3.13.3
3.13.2
3.13.1
3.13.0
3.12.6
3.12.5
3.12.4
3.12.3
3.12.2
3.12.1
3.12.0
3.11.2
3.11.1
3.11.0
3.10.3
3.10.2
3.10.1
3.10.0
3.9.6
3.9.5
3.9.4
3.9.3
3.9.2
3.9.1
3.9.0
3.8.4
3.8.3
3.8.2
3.8.1
3.8.0
3.7.2
3.7.1
3.7.0
3.6.2
3.6.1
3.6.0
3.5.8
3.5.7
3.5.6
3.5.5
3.5.4
3.5.3
3.5.2
3.5.1
3.5.0
3.5.0-rc.1
3.5.0-rc.0
3.4.6
3.4.5
3.4.4
3.4.3
3.4.2
3.4.1
3.4.0
3.3.4
3.3.3
3.3.2
3.3.1
3.3.0
3.2.5
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
3.1.7
3.1.6
3.1.5
3.1.4
3.1.3
3.1.2
3.1.1
3.1.0
3.0.9
3.0.8
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
3.0.0-rc.1
3.0.0-rc.0
2.2.12
2.2.11
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.2.0-rc.1
2.2.0-rc.0
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.1.0-rc.5
2.1.0-rc.4
2.1.0-rc.3
2.1.0-rc.2
2.1.0-rc.1
2.1.0-rc.0
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
2.0.0-rc.6
2.0.0-rc.5
2.0.0-rc.4
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
2.0.0-rc.0
2.0.0-beta.2
2.0.0-beta.1
2.0.0-beta.0
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.16.0
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
0.12.0-rc
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
A toolkit for data mapping and language integrated query for Elixir
Current section
Files
Jump to
Current section
Files
integration_test/cases/pool.exs
Code.require_file "../support/file_helpers.exs", __DIR__
defmodule Ecto.Integration.PoolTest do
use ExUnit.Case, async: true
pool =
case System.get_env("ECTO_POOL") || "poolboy" do
"poolboy" -> Ecto.Pools.Poolboy
"sojourn_broker" -> Ecto.Pools.SojournBroker
end
repo = Application.get_env(:ecto, Ecto.Integration.TestRepo) ||
raise "could not find configuration for Ecto.Integration.TestRepo"
Application.put_env(:ecto, __MODULE__.MockRepo,
[pool: pool, pool_size: 1] ++ repo)
defmodule MockRepo do
use Ecto.Repo, otp_app: :ecto
def after_connect(conn) do
send Application.get_env(:ecto, :pool_test_pid), {:after_connect, conn}
end
end
defmodule MockPool do
def start_link(_conn_mod, opts) do
assert opts[:pool_name] == MockRepo.Alternative.Pool
assert opts[:repo] == MockRepo
assert opts[:foo] == :bar # Custom options are passed through
Task.start_link(fn -> :timer.sleep(:infinity) end)
end
end
setup do
Application.put_env(:ecto, :pool_test_pid, self())
:ok
end
test "starts repo with after_connect" do
assert {:ok, _} = MockRepo.start_link(lazy: false, name: MockRepo.AfterConnect, query_cache_owner: false)
assert_receive {:after_connect, pid} when is_pid(pid)
end
test "starts repo with different names" do
assert {:ok, pool1} = MockRepo.start_link()
assert {:error, {:already_started, _}} = MockRepo.start_link()
assert {:ok, pool2} = MockRepo.start_link(name: MockRepo.Named, query_cache_owner: false)
assert pool1 != pool2
end
test "starts repo with custom pool" do
assert {:ok, _} =
MockRepo.start_link(name: MockRepo.Alternative, pool: MockPool, foo: :bar, query_cache_owner: false)
end
end