ecto_case.ex (1305B)
1 # Zenflows is designed to implement the Valueflows vocabulary, 2 # written and maintained by srfsh <info@dyne.org>. 3 # Copyright (C) 2021-2023 Dyne.org foundation <foundation@dyne.org>. 4 # 5 # This program is free software: you can redistribute it and/or modify 6 # it under the terms of the GNU Affero General Public License as published by 7 # the Free Software Foundation, either version 3 of the License, or 8 # (at your option) any later version. 9 # 10 # This program is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU Affero General Public License for more details. 14 # 15 # You should have received a copy of the GNU Affero General Public License 16 # along with this program. If not, see <https://www.gnu.org/licenses/>. 17 18 defmodule ZenflowsTest.Help.EctoCase do 19 @moduledoc "A helper module to ease writing DB tests." 20 use ExUnit.CaseTemplate 21 22 using do 23 quote do 24 import Ecto 25 import Ecto.Query 26 import ZenflowsTest.Help.EctoCase 27 28 alias Zenflows.DB.Repo 29 alias ZenflowsTest.Help.Factory 30 end 31 end 32 33 setup ctx do 34 alias Ecto.Adapters.SQL.Sandbox 35 alias Zenflows.DB.Repo 36 37 :ok = Sandbox.checkout(Repo) 38 39 unless ctx[:async] do 40 Sandbox.mode(Repo, {:shared, self()}) 41 end 42 43 :ok 44 end 45 end