diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2020-08-05 18:23:12 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2020-08-05 18:23:12 +0300 |
commit | 8c57a299b463b7e5916addbbd3571b35e1742ebd (patch) | |
tree | c893c4a2622a1d33e91b91825e35109c83fb44ba | |
parent | 2299bfe4c19697e7c0250e052d3496533595c58b (diff) | |
download | pleroma-8c57a299b463b7e5916addbbd3571b35e1742ebd.tar.gz |
Handle non-list keys in Config.fetch/1
-rw-r--r-- | lib/pleroma/config.ex | 2 | ||||
-rw-r--r-- | test/config_test.exs | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/pleroma/config.ex b/lib/pleroma/config.ex index 98099ca58..a8329cc1e 100644 --- a/lib/pleroma/config.ex +++ b/lib/pleroma/config.ex @@ -32,6 +32,8 @@ defmodule Pleroma.Config do end end + def fetch(key) when is_atom(key), do: fetch([key]) + def fetch([root_key | keys]) do Enum.reduce_while(keys, Application.fetch_env(:pleroma, root_key), fn key, {:ok, config} when is_map(config) or is_list(config) -> diff --git a/test/config_test.exs b/test/config_test.exs index e2c18304e..1556e4237 100644 --- a/test/config_test.exs +++ b/test/config_test.exs @@ -127,9 +127,11 @@ defmodule Pleroma.ConfigTest do Pleroma.Config.put([:ipsum], dolor: :sit) assert Pleroma.Config.fetch([:lorem]) == {:ok, :ipsum} + assert Pleroma.Config.fetch(:lorem) == {:ok, :ipsum} assert Pleroma.Config.fetch([:ipsum, :dolor]) == {:ok, :sit} assert Pleroma.Config.fetch([:lorem, :ipsum]) == :error assert Pleroma.Config.fetch([:loremipsum]) == :error + assert Pleroma.Config.fetch(:loremipsum) == :error Pleroma.Config.delete([:lorem]) Pleroma.Config.delete([:ipsum]) |