diff options
Diffstat (limited to 'test/support')
| -rw-r--r-- | test/support/helpers.ex | 53 | 
1 files changed, 53 insertions, 0 deletions
| diff --git a/test/support/helpers.ex b/test/support/helpers.ex index 1a92be065..a601b3ec8 100644 --- a/test/support/helpers.ex +++ b/test/support/helpers.ex @@ -7,8 +7,52 @@ defmodule Pleroma.Tests.Helpers do    Helpers for use in tests.    """ +  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 +      setup do +        initial_setting = Pleroma.Config.get(unquote(config_path)) +        unquote(yield) +        on_exit(fn -> Pleroma.Config.put(unquote(config_path), initial_setting) end) +        :ok +      end +    end +  end + +  defmacro clear_config_all(config_path) do +    quote do +      clear_config_all(unquote(config_path)) do +      end +    end +  end + +  defmacro clear_config_all(config_path, do: yield) do +    quote do +      setup_all do +        initial_setting = Pleroma.Config.get(unquote(config_path)) +        unquote(yield) +        on_exit(fn -> Pleroma.Config.put(unquote(config_path), initial_setting) end) +        :ok +      end +    end +  end +    defmacro __using__(_opts) do      quote do +      import Pleroma.Tests.Helpers, +        only: [ +          clear_config: 1, +          clear_config: 2, +          clear_config_all: 1, +          clear_config_all: 2 +        ] +        def collect_ids(collection) do          collection          |> Enum.map(& &1.id) @@ -30,6 +74,15 @@ defmodule Pleroma.Tests.Helpers do          |> Poison.encode!()          |> Poison.decode!()        end + +      defmacro guards_config(config_path) do +        quote do +          initial_setting = Pleroma.Config.get(config_path) + +          Pleroma.Config.put(config_path, true) +          on_exit(fn -> Pleroma.Config.put(config_path, initial_setting) end) +        end +      end      end    end  end | 
