46 lines
1.1 KiB
Elixir
46 lines
1.1 KiB
Elixir
# Portions of this file are derived from Pleroma:
|
|
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social>
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
# Upstream: https://git.pleroma.social/pleroma/pleroma/blob/develop/test/support/helpers.ex
|
|
|
|
defmodule Mobilizon.Tests.Helpers do
|
|
@moduledoc """
|
|
Helpers for use in tests.
|
|
"""
|
|
alias Mobilizon.Config
|
|
|
|
defmacro clear_config(config_path) do
|
|
quote do
|
|
clear_config(unquote(config_path)) do
|
|
end
|
|
end
|
|
end
|
|
|
|
defmacro clear_config(config_path, do: yield) do
|
|
quote do
|
|
initial_setting = Config.get(unquote(config_path))
|
|
unquote(yield)
|
|
on_exit(fn -> Config.put(unquote(config_path), initial_setting) end)
|
|
:ok
|
|
end
|
|
end
|
|
|
|
defmacro clear_config(config_path, temp_setting) do
|
|
quote do
|
|
clear_config(unquote(config_path)) do
|
|
Config.put(unquote(config_path), unquote(temp_setting))
|
|
end
|
|
end
|
|
end
|
|
|
|
defmacro __using__(_opts) do
|
|
quote do
|
|
import Mobilizon.Tests.Helpers,
|
|
only: [
|
|
clear_config: 1,
|
|
clear_config: 2
|
|
]
|
|
end
|
|
end
|
|
end
|