logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 03030b47c22f4a193e7ddc582574d4a521854025
parent 47fc57bbccbe5df32ef00dda0ee8bdd56b38885f
Author: Ilja <domainepublic@spectraltheorem.be>
Date:   Sat, 28 Nov 2020 10:34:31 +0100

quarantine instances info

Added a new field in the nodeinfo called quarantined_instances_info
This holds an object like `"quarantined_instances_info":{"quarantined_instances":{"quar.inst":{"reason":"whatever reason"}}}}`

Diffstat:

Mlib/pleroma/web/mastodon_api/views/instance_view.ex10+++++++++-
Mtest/pleroma/web/node_info_test.exs44+++++++++++++++++++++++++++++++++-----------
2 files changed, 42 insertions(+), 12 deletions(-)

diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -98,7 +98,15 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do |> Map.merge(%{ quarantined_instances: quarantined - |> Enum.map(fn {instance, reason} -> %{"instance" => instance, "reason" => reason} end) + |> Enum.map(fn {instance, _reason} -> instance end) + }) + |> Map.merge(%{ + quarantined_instances_info: %{ + "quarantined_instances" => + quarantined + |> Enum.map(fn {instance, reason} -> {instance, %{"reason" => reason}} end) + |> Enum.into(%{}) + } }) else %{} diff --git a/test/pleroma/web/node_info_test.exs b/test/pleroma/web/node_info_test.exs @@ -150,20 +150,42 @@ defmodule Pleroma.Web.NodeInfoTest do ) end - test "it shows quarantined instances data if enabled", %{conn: conn} do - clear_config([:mrf, :transparency], true) + describe "Quarantined instances" do + setup do + clear_config([:mrf, :transparency], true) + quarantined_instances = [{"example.com", "reason to quarantine"}] + clear_config([:instance, :quarantined_instances], quarantined_instances) + end - quarantined_instances = [{"example.com", ""}] - clear_config([:instance, :quarantined_instances], quarantined_instances) + test "shows quarantined instances data if enabled", %{conn: conn} do + expected_config = ["example.com"] - expected_config = [%{"instance" => "example.com", "reason" => ""}] + response = + conn + |> get("/nodeinfo/2.1.json") + |> json_response(:ok) - response = - conn - |> get("/nodeinfo/2.1.json") - |> json_response(:ok) + assert response["metadata"]["federation"]["quarantined_instances"] == expected_config + end + + test "shows extra information in the quarantined_info field for relevant entries", %{ + conn: conn + } do + clear_config([:mrf, :transparency], true) + + expected_config = %{ + "quarantined_instances" => %{ + "example.com" => %{"reason" => "reason to quarantine"} + } + } - assert response["metadata"]["federation"]["quarantined_instances"] == expected_config + response = + conn + |> get("/nodeinfo/2.1.json") + |> json_response(:ok) + + assert response["metadata"]["federation"]["quarantined_instances_info"] == expected_config + end end describe "MRF SimplePolicy" do @@ -205,7 +227,7 @@ defmodule Pleroma.Web.NodeInfoTest do assert response["metadata"]["federation"]["exclusions"] == true end - test "shows extra information in the mrf_simple_extra field for relevant entries", %{ + test "shows extra information in the mrf_simple_info field for relevant entries", %{ conn: conn } do simple_config = %{