From f297cd2703d2e16fdb3c41313419b6771aba158b Mon Sep 17 00:00:00 2001 From: Renato Massaro Date: Sat, 10 Mar 2018 14:46:07 -0300 Subject: [PATCH] Remove code warnings --- lib/event/listenable/flow.ex | 15 ++++++++++++--- lib/event/loggable/flow.ex | 2 +- lib/network/internal/bounce.ex | 4 ++-- lib/network/model/bounce.ex | 2 +- lib/network/model/tunnel.ex | 4 ++-- lib/process/model/process.ex | 10 +++++----- lib/process/processable.ex | 8 ++++---- lib/process/resourceable.ex | 2 +- lib/server/event/motherboard.ex | 2 +- lib/server/internal/motherboard.ex | 2 +- lib/server/model/motherboard.ex | 6 +++--- lib/server/websocket/requests/config/check.ex | 2 +- lib/server/websocket/requests/config/set.ex | 2 +- lib/software/model/file.ex | 2 +- lib/story/model/step/macros.ex | 2 +- lib/websocket/request/proxy.ex | 2 +- mix.exs | 1 + mix.lock | 3 ++- test/process/event/handler/top_test.exs | 12 ++++++------ test/process/model/process_test.exs | 2 +- test/process/model/top/allocator_test.exs | 12 ++++++------ .../websocket/requests/virus/collect_test.exs | 16 +++++++++------- test/support/channel/interceptor.ex | 3 +++ test/support/channel/request/macros.ex | 2 +- test/support/event/setup/software.ex | 2 +- test/support/log/setup.ex | 4 ++-- test/support/process/setup.ex | 2 +- test/support/software/setup/virus.ex | 4 ++-- test/support/story/setup.ex | 2 +- 29 files changed, 74 insertions(+), 58 deletions(-) diff --git a/lib/event/listenable/flow.ex b/lib/event/listenable/flow.ex index 8b24f55f..6a5eaa0e 100644 --- a/lib/event/listenable/flow.ex +++ b/lib/event/listenable/flow.ex @@ -47,6 +47,17 @@ defmodule Helix.Event.Listenable.Flow do Expands the expected methods of the `Listenable` protocol. """ defmacro listen(event, do: block) do + + fallback_block = + if elem(event, 0) == := do + quote do + def get_objects(_), + do: [] + end + else + [] + end + quote do @doc false @@ -54,9 +65,7 @@ defmodule Helix.Event.Listenable.Flow do unquote(block) end - # Fallback - def get_objects(_), - do: [] + unquote(fallback_block) end end diff --git a/lib/event/loggable/flow.ex b/lib/event/loggable/flow.ex index cd99a89c..87dc3795 100644 --- a/lib/event/loggable/flow.ex +++ b/lib/event/loggable/flow.ex @@ -40,7 +40,7 @@ defmodule Helix.Event.Loggable.Flow do Top-level macro for events wanting to implement the Loggable protocol. """ defmacro loggable(do: block) do - quote do + quote generated: true do defimpl Helix.Event.Loggable do @moduledoc false diff --git a/lib/network/internal/bounce.ex b/lib/network/internal/bounce.ex index 64b95c79..61eefff0 100644 --- a/lib/network/internal/bounce.ex +++ b/lib/network/internal/bounce.ex @@ -39,7 +39,7 @@ defmodule Helix.Network.Internal.Bounce do with [bounce, sorted] = [%Bounce{}, %Bounce.Sorted{}] <- result do bounce - |> Map.replace(:sorted, sorted) + |> Map.replace!(:sorted, sorted) |> Bounce.format() end end @@ -166,7 +166,7 @@ defmodule Helix.Network.Internal.Bounce do {:ok, new_bounce} <- update_name_attempt do new_bounce - |> Map.replace(:sorted, new_sorted) + |> Map.replace!(:sorted, new_sorted) |> Bounce.format() else _ -> diff --git a/lib/network/model/bounce.ex b/lib/network/model/bounce.ex index 4d7c87e0..8ead1e1f 100644 --- a/lib/network/model/bounce.ex +++ b/lib/network/model/bounce.ex @@ -97,7 +97,7 @@ defmodule Helix.Network.Model.Bounce do |> Map.put(:links, links) # `sorted` is an implementation detail - |> Map.replace(:sorted, nil) + |> Map.replace!(:sorted, nil) # See `File.format/1` for context |> Ecto.put_meta(state: :loaded) diff --git a/lib/network/model/tunnel.ex b/lib/network/model/tunnel.ex index 260b2a51..206fa55c 100644 --- a/lib/network/model/tunnel.ex +++ b/lib/network/model/tunnel.ex @@ -116,8 +116,8 @@ defmodule Helix.Network.Model.Tunnel do t def format(tunnel = %Tunnel{}) do tunnel - |> Map.replace(:hops, get_hops(tunnel)) - |> Map.replace(:bounce, format_bounce(tunnel)) + |> Map.replace!(:hops, get_hops(tunnel)) + |> Map.replace!(:bounce, format_bounce(tunnel)) end @spec format_bounce(t) :: diff --git a/lib/process/model/process.ex b/lib/process/model/process.ex index a9938606..d9fc8f17 100644 --- a/lib/process/model/process.ex +++ b/lib/process/model/process.ex @@ -470,8 +470,8 @@ defmodule Helix.Process.Model.Process do formatted_data = Processable.after_read_hook(process.data) process - |> Map.replace(:state, get_state(process)) - |> Map.replace(:data, formatted_data) + |> Map.replace!(:state, get_state(process)) + |> Map.replace!(:data, formatted_data) |> format_resources() |> infer_usage() |> estimate_duration() @@ -575,9 +575,9 @@ defmodule Helix.Process.Model.Process do end process - |> Map.replace(:completion_date, completion_date) - |> Map.replace(:time_left, time_left) - |> Map.replace(:percentage, percentage) + |> Map.replace!(:completion_date, completion_date) + |> Map.replace!(:time_left, time_left) + |> Map.replace!(:percentage, percentage) end docp """ diff --git a/lib/process/processable.ex b/lib/process/processable.ex index 213c5b91..82c38c05 100644 --- a/lib/process/processable.ex +++ b/lib/process/processable.ex @@ -21,7 +21,7 @@ defmodule Helix.Process.Processable do Macro for implementation of the Processable protocol. """ defmacro processable(do: block) do - quote location: :keep do + quote location: :keep, generated: true do defimpl Helix.Process.Model.Processable do @@ -90,7 +90,7 @@ defmodule Helix.Process.Processable do Default behaviour is to delete the process. """ defmacro on_kill(process, data, reason \\ quote(do: _), do: block) do - quote do + quote generated: true do def kill(unquote(data), p = unquote(process), unquote(reason)) do unquote(block) @@ -108,7 +108,7 @@ defmodule Helix.Process.Processable do Default behaviour is to send a SIGKILL to itself. """ defmacro on_source_connection_closed(process, data, connection, do: block) do - quote do + quote generated: true do def source_connection_closed( unquote(data), @@ -130,7 +130,7 @@ defmodule Helix.Process.Processable do Default behaviour is to send a SIGKILL to itself. """ defmacro on_target_connection_closed(process, data, connection, do: block) do - quote do + quote generated: true do def target_connection_closed( unquote(data), diff --git a/lib/process/resourceable.ex b/lib/process/resourceable.ex index 3a528115..519e0a05 100644 --- a/lib/process/resourceable.ex +++ b/lib/process/resourceable.ex @@ -153,7 +153,7 @@ defmodule Helix.Process.Resourceable do # Fallbacks in case the user did not specify static and dynamic allocations fallback_allocations = - quote do + quote generated: true do @doc false def static(_, _), do: %{} diff --git a/lib/server/event/motherboard.ex b/lib/server/event/motherboard.ex index 4f859e2a..1321e627 100644 --- a/lib/server/event/motherboard.ex +++ b/lib/server/event/motherboard.ex @@ -58,7 +58,7 @@ defmodule Helix.Server.Event.Motherboard do data = event.index_cache |> HardwareIndex.render_index() - |> Map.replace(:motherboard, nil) + |> Map.replace!(:motherboard, nil) {:ok, data} end diff --git a/lib/server/internal/motherboard.ex b/lib/server/internal/motherboard.ex index 7fc2bc31..3bbf7546 100644 --- a/lib/server/internal/motherboard.ex +++ b/lib/server/internal/motherboard.ex @@ -152,7 +152,7 @@ defmodule Helix.Server.Internal.Motherboard do |> Enum.map(fn {component, _slot} -> component end) |> Enum.zip(entries) |> Enum.reduce([], fn {component, entry}, acc -> - entry = Map.replace(entry, :linked_component, component) + entry = Map.replace!(entry, :linked_component, component) acc ++ [entry] end) diff --git a/lib/server/model/motherboard.ex b/lib/server/model/motherboard.ex index b80e285d..e0e8ac9b 100644 --- a/lib/server/model/motherboard.ex +++ b/lib/server/model/motherboard.ex @@ -169,7 +169,7 @@ defmodule Helix.Server.Model.Motherboard do :ok -> changeset |> apply_changes() - |> Map.replace(:motherboard_id, mobo.component_id) + |> Map.replace!(:motherboard_id, mobo.component_id) {:error, reason} -> changeset @@ -227,7 +227,7 @@ defmodule Helix.Server.Model.Motherboard do :ok -> changeset |> apply_changes() - |> Map.replace(:motherboard_id, motherboard.motherboard_id) + |> Map.replace!(:motherboard_id, motherboard.motherboard_id) {:error, reason} -> changeset @@ -258,7 +258,7 @@ defmodule Helix.Server.Model.Motherboard do |> Map.delete(real_id) acc - |> Map.replace(slot_type, new_sub_type) + |> Map.replace!(slot_type, new_sub_type) end) # Now we'll convert the available map into an API-friendly list diff --git a/lib/server/websocket/requests/config/check.ex b/lib/server/websocket/requests/config/check.ex index 5f892d9d..5ef67470 100644 --- a/lib/server/websocket/requests/config/check.ex +++ b/lib/server/websocket/requests/config/check.ex @@ -15,7 +15,7 @@ request Helix.Server.Websocket.Requests.Config.Check do sub_request = backend |> apply(:new, [request.unsafe["value"], socket]) - |> Map.replace(:relay, request.relay) + |> Map.replace!(:relay, request.relay) with {:ok, sub_req} <- Requestable.check_params(sub_request, socket) do update_meta(request, %{sub_request: sub_req}, reply: true) diff --git a/lib/server/websocket/requests/config/set.ex b/lib/server/websocket/requests/config/set.ex index ba10ce3a..1ade4040 100644 --- a/lib/server/websocket/requests/config/set.ex +++ b/lib/server/websocket/requests/config/set.ex @@ -25,7 +25,7 @@ request Helix.Server.Websocket.Requests.Config.Set do req = backend |> apply(:new, [req_params, socket]) - |> Map.replace(:relay, request.relay) + |> Map.replace!(:relay, request.relay) {key, req} end) diff --git a/lib/software/model/file.ex b/lib/software/model/file.ex index 16af7df7..bde223a3 100644 --- a/lib/software/model/file.ex +++ b/lib/software/model/file.ex @@ -131,7 +131,7 @@ defmodule Helix.Software.Model.File do end) file - |> Map.replace(:modules, formatted_modules) + |> Map.replace!(:modules, formatted_modules) # For some reason, Ecto assigns the `:built` state sometimes, which leads to # some weird behaviour on some Repo inserts. As suggested here[1], we'll use diff --git a/lib/story/model/step/macros.ex b/lib/story/model/step/macros.ex index 96609b4f..f38b80aa 100644 --- a/lib/story/model/step/macros.ex +++ b/lib/story/model/step/macros.ex @@ -22,7 +22,7 @@ defmodule Helix.Story.Model.Step.Macros do alias Helix.Story.Event.Step.ActionRequested, as: StepActionRequestedEvent defmacro step(name, contact \\ nil, do: block) do - quote location: :keep do + quote location: :keep, generated: true do defmodule unquote(name) do @moduledoc false diff --git a/lib/websocket/request/proxy.ex b/lib/websocket/request/proxy.ex index 62ecb71f..808eb8ed 100644 --- a/lib/websocket/request/proxy.ex +++ b/lib/websocket/request/proxy.ex @@ -47,7 +47,7 @@ defmodule Helix.Websocket.Request.Proxy do sub_request = backend |> apply(:new, [request.unsafe, socket]) - |> Map.replace(:relay, request.relay) + |> Map.replace!(:relay, request.relay) with {:ok, req} <- Requestable.check_params(sub_request, socket) do update_meta(request, %{sub_request: req}, reply: true) diff --git a/mix.exs b/mix.exs index 6045f2e9..c43471ff 100644 --- a/mix.exs +++ b/mix.exs @@ -72,6 +72,7 @@ defmodule Helix.Mixfile do {:ex_machina, "~> 2.1", only: :test}, {:earmark, "~> 1.2.4", only: :dev}, {:ex_doc, "~> 0.18.1", only: :dev}, + {:dialyxir, "~> 0.5", only: [:dev], runtime: false}, {:inch_ex, "~> 0.5.6", only: [:dev, :test]}, diff --git a/mix.lock b/mix.lock index 432fd7c5..fef88e51 100644 --- a/mix.lock +++ b/mix.lock @@ -12,6 +12,7 @@ "credo": {:hex, :credo, "0.8.10", "261862bb7363247762e1063713bb85df2bbd84af8d8610d1272cd9c1943bba63", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, optional: false]}]}, "db_connection": {:hex, :db_connection, "1.1.3", "89b30ca1ef0a3b469b1c779579590688561d586694a3ce8792985d4d7e575a61", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, optional: true]}]}, "decimal": {:hex, :decimal, "1.4.1", "ad9e501edf7322f122f7fc151cce7c2a0c9ada96f2b0155b8a09a795c2029770", [:mix], []}, + "dialyxir": {:hex, :dialyxir, "0.5.1", "b331b091720fd93e878137add264bac4f644e1ddae07a70bf7062c7862c4b952", [:mix], []}, "distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [:mix], []}, "earmark": {:hex, :earmark, "1.2.4", "99b637c62a4d65a20a9fb674b8cffb8baa771c04605a80c911c4418c69b75439", [:mix], []}, "ecto": {:hex, :ecto, "2.2.8", "a4463c0928b970f2cee722cd29aaac154e866a15882c5737e0038bbfcf03ec2c", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, optional: true]}]}, @@ -36,7 +37,7 @@ "plug": {:hex, :plug, "1.4.5", "7b13869283fff6b8b21b84b8735326cc012c5eef8607095dc6ee24bd0a273d8e", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]}, "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], []}, "poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], []}, - "postgrex": {:hex, :postgrex, "0.13.4", "f58e319c5451bfda86ba6a45ce6dca311193d0a9861323d0d16e8d02e25adc41", [:mix], [{:connection, "~> 1.0", [hex: :connection, optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, optional: false]}]}, + "postgrex": {:hex, :postgrex, "0.13.5", "3d931aba29363e1443da167a4b12f06dcd171103c424de15e5f3fc2ba3e6d9c5", [:mix], [{:connection, "~> 1.0", [hex: :connection, optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, optional: false]}]}, "ranch": {:hex, :ranch, "1.3.2", "e4965a144dc9fbe70e5c077c65e73c57165416a901bd02ea899cfd95aa890986", [:rebar3], []}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], []}, "timber": {:hex, :timber, "2.6.1", "946dee43730b30748c7a3ed0085abe8690dcbaf4cd96031caba676b938dd40a6", [:mix], [{:ecto, ">= 2.0.0 and < 2.3.0", [hex: :ecto, optional: true]}, {:hackney, "1.6.3 or 1.6.5 or 1.7.1 or 1.8.6 or ~> 1.9", [hex: :hackney, optional: false]}, {:msgpax, "~> 1.0", [hex: :msgpax, optional: false]}, {:phoenix, ">= 1.2.0 and < 1.4.0", [hex: :phoenix, optional: true]}, {:plug, ">= 1.2.0 and < 1.5.0", [hex: :plug, optional: true]}, {:poison, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :poison, optional: false]}]}, diff --git a/test/process/event/handler/top_test.exs b/test/process/event/handler/top_test.exs index ea1829cf..1f367c8e 100644 --- a/test/process/event/handler/top_test.exs +++ b/test/process/event/handler/top_test.exs @@ -22,13 +22,13 @@ defmodule Helix.Process.Event.Handler.TOPTest do {_, %{params: params}} = ProcessSetup.fake_process( gateway_id: server.server_id, - src_connection_id: connection.connection_id, + src_connection_id: connection.connection_id ) params = params - |> Map.replace(:data, FakeDefaultProcess.new()) - |> Map.replace(:type, :fake_default_process) + |> Map.replace!(:data, FakeDefaultProcess.new()) + |> Map.replace!(:type, :fake_default_process) {:ok, process} = ProcessInternal.create(params) @@ -54,13 +54,13 @@ defmodule Helix.Process.Event.Handler.TOPTest do {_, %{params: params}} = ProcessSetup.fake_process( gateway_id: server.server_id, - tgt_connection_id: connection.connection_id, + tgt_connection_id: connection.connection_id ) params = params - |> Map.replace(:data, FakeDefaultProcess.new()) - |> Map.replace(:type, :fake_default_process) + |> Map.replace!(:data, FakeDefaultProcess.new()) + |> Map.replace!(:type, :fake_default_process) {:ok, process} = ProcessInternal.create(params) diff --git a/test/process/model/process_test.exs b/test/process/model/process_test.exs index 5a46a02a..c91964c0 100644 --- a/test/process/model/process_test.exs +++ b/test/process/model/process_test.exs @@ -71,7 +71,7 @@ defmodule Helix.Process.Model.ProcessTest do l_limit: %{ram: 30}, r_limit: %{dlk: %{net: 20}}, l_reserved: %{cpu: 0, ram: 40, ulk: %{net: 30}, dlk: %{}}, - r_reserved: %{cpu: 10, ram: 20, ulk: %{net: 15}, dlk: %{net: 20}}, + r_reserved: %{cpu: 10, ram: 20, ulk: %{net: 15}, dlk: %{net: 20}} ) process = Process.infer_usage(proc) diff --git a/test/process/model/top/allocator_test.exs b/test/process/model/top/allocator_test.exs index e6014a65..b3935796 100644 --- a/test/process/model/top/allocator_test.exs +++ b/test/process/model/top/allocator_test.exs @@ -58,7 +58,7 @@ defmodule Helix.Process.Model.Top.AllocatorTest do proc1 = proc1 |> Map.from_struct() - |> Map.replace(:l_dynamic, [:cpu]) + |> Map.replace!(:l_dynamic, [:cpu]) |> Map.put(:id, 1) |> put_in([:static, :running, :ram], 0) |> put_in([:static, :running, :ulk], 0) @@ -68,7 +68,7 @@ defmodule Helix.Process.Model.Top.AllocatorTest do proc2 = proc2 |> Map.from_struct() - |> Map.replace(:l_dynamic, [:ram]) + |> Map.replace!(:l_dynamic, [:ram]) |> Map.put(:id, 2) |> put_in([:static, :running, :cpu], 0) |> put_in([:static, :running, :ulk], 0) @@ -78,7 +78,7 @@ defmodule Helix.Process.Model.Top.AllocatorTest do proc3 = proc3 |> Map.from_struct() - |> Map.replace(:l_dynamic, [:ulk]) + |> Map.replace!(:l_dynamic, [:ulk]) |> Map.put(:id, 3) |> put_in([:static, :running, :cpu], 0) |> put_in([:static, :running, :ram], 0) @@ -88,7 +88,7 @@ defmodule Helix.Process.Model.Top.AllocatorTest do proc4 = proc4 |> Map.from_struct() - |> Map.replace(:l_dynamic, [:dlk]) + |> Map.replace!(:l_dynamic, [:dlk]) |> Map.put(:id, 4) |> put_in([:static, :running, :cpu], 0) |> put_in([:static, :running, :ram], 0) @@ -222,8 +222,8 @@ defmodule Helix.Process.Model.Top.AllocatorTest do total_resources |> put_in([:dlk, :net], 0) |> put_in([:ulk, :net], 0) - |> Map.replace(:cpu, proc.objective.cpu) - |> Map.replace(:ram, proc.objective.ram) + |> Map.replace!(:cpu, proc.objective.cpu) + |> Map.replace!(:ram, proc.objective.ram) assert {:error, reason, _} = TOPAllocator.allocate(:gateway, total_resources, [proc]) diff --git a/test/software/websocket/requests/virus/collect_test.exs b/test/software/websocket/requests/virus/collect_test.exs index 72a4e369..f88adbd6 100644 --- a/test/software/websocket/requests/virus/collect_test.exs +++ b/test/software/websocket/requests/virus/collect_test.exs @@ -83,10 +83,10 @@ defmodule Helix.Software.Websocket.Requests.Virus.CollectTest do p3 = Map.drop(base_params, ["atm_id"]) # Invalid entry at `viruses` - p4 = Map.replace(base_params, "viruses", ["lol", to_string(file2_id)]) + p4 = Map.replace!(base_params, "viruses", ["lol", to_string(file2_id)]) # Viruses must not be empty - p5 = Map.replace(base_params, "viruses", []) + p5 = Map.replace!(base_params, "viruses", []) req0 = VirusCollectRequest.new(p0) req1 = VirusCollectRequest.new(p1) @@ -212,35 +212,37 @@ defmodule Helix.Software.Websocket.Requests.Virus.CollectTest do } ### Test 0: `gateway_id` is not owned by the entity - p0 = Map.replace(base_params, :gateway_id, server.server_id) + p0 = Map.replace!(base_params, :gateway_id, server.server_id) req0 = RequestHelper.mock_request(VirusCollectRequest, p0) assert {:error, reason, _} = Requestable.check_permissions(req0, socket) assert reason == %{message: "server_not_belongs"} ### Test 1: BankAccount is not owned by the entity - p1 = Map.replace(base_params, :account_number, bad_account.account_number) + p1 = + Map.replace!(base_params, :account_number, bad_account.account_number) req1 = RequestHelper.mock_request(VirusCollectRequest, p1) assert {:error, reason, _} = Requestable.check_permissions(req1, socket) assert reason == %{message: "bank_account_not_belongs"} ### Test 2: Bounce may not be used - p2 = Map.replace(base_params, :bounce_id, bad_bounce.bounce_id) + p2 = Map.replace!(base_params, :bounce_id, bad_bounce.bounce_id) req2 = RequestHelper.mock_request(VirusCollectRequest, p2) assert {:error, reason, _} = Requestable.check_permissions(req2, socket) assert reason == %{message: "bounce_not_belongs"} ### Test 3: A cracker is not a virus! - p3 = Map.replace(base_params, :viruses, [file1.file_id, cracker.file_id]) + p3 = Map.replace!(base_params, :viruses, [file1.file_id, cracker.file_id]) req3 = RequestHelper.mock_request(VirusCollectRequest, p3) assert {:error, reason, _} = Requestable.check_permissions(req3, socket) assert reason == %{message: "virus_not_found"} ### Test 4: Collecting from a virus that is not active - p4 = Map.replace(base_params, :viruses, [file1.file_id, inactive.file_id]) + p4 = + Map.replace!(base_params, :viruses, [file1.file_id, inactive.file_id]) req4 = RequestHelper.mock_request(VirusCollectRequest, p4) assert {:error, reason, _} = Requestable.check_permissions(req4, socket) diff --git a/test/support/channel/interceptor.ex b/test/support/channel/interceptor.ex index 1a6aa896..8fbc9434 100644 --- a/test/support/channel/interceptor.ex +++ b/test/support/channel/interceptor.ex @@ -29,6 +29,9 @@ defmodule Helix.Test.Channel.Interceptor do # Callbacks + def init(_), + do: {:ok, []} + def handle_call({:add_intercept, endpoint, entry}, _, state), do: {:reply, :ok, put_in(state, [endpoint], entry)} diff --git a/test/support/channel/request/macros.ex b/test/support/channel/request/macros.ex index 29c83300..21fe4523 100644 --- a/test/support/channel/request/macros.ex +++ b/test/support/channel/request/macros.ex @@ -3,7 +3,7 @@ defmodule Helix.Test.Channel.Request.Macros do defmacro replace_param(request, key, value) do quote do new_params = - Map.replace(unquote(request).params, unquote(key), unquote(value)) + Map.replace!(unquote(request).params, unquote(key), unquote(value)) var!(request) = %{unquote(request)| params: new_params} end diff --git a/test/support/event/setup/software.ex b/test/support/event/setup/software.ex index 9c510729..c8cf7c56 100644 --- a/test/support/event/setup/software.ex +++ b/test/support/event/setup/software.ex @@ -71,7 +71,7 @@ defmodule Helix.Test.Event.Setup.Software do """ def file_downloaded(connection_type: type) do file_downloaded() - |> Map.replace(:connection_type, type) + |> Map.replace!(:connection_type, type) end def file_downloaded do diff --git a/test/support/log/setup.ex b/test/support/log/setup.ex index 77eb3772..e08c6499 100644 --- a/test/support/log/setup.ex +++ b/test/support/log/setup.ex @@ -63,8 +63,8 @@ defmodule Helix.Test.Log.Setup do log = changeset |> Ecto.Changeset.apply_changes() - |> Map.replace(:creation_time, DateTime.utc_now()) - |> Map.replace(:log_id, Log.ID.generate()) + |> Map.replace!(:creation_time, DateTime.utc_now()) + |> Map.replace!(:log_id, Log.ID.generate()) related = %{ params: params, diff --git a/test/support/process/setup.ex b/test/support/process/setup.ex index b7b55e5c..2104218b 100644 --- a/test/support/process/setup.ex +++ b/test/support/process/setup.ex @@ -115,7 +115,7 @@ defmodule Helix.Test.Process.Setup do params |> Process.create_changeset() |> Ecto.Changeset.apply_changes() - |> Map.replace(:process_id, Process.ID.generate()) + |> Map.replace!(:process_id, Process.ID.generate()) related = %{ source_entity_id: source_entity_id, diff --git a/test/support/software/setup/virus.ex b/test/support/software/setup/virus.ex index 2f096589..634b5a1e 100644 --- a/test/support/software/setup/virus.ex +++ b/test/support/software/setup/virus.ex @@ -41,7 +41,7 @@ defmodule Helix.Test.Software.Setup.Virus do virus end - related = Map.replace(related, :file, file) + related = Map.replace!(related, :file, file) {virus, related} end @@ -85,7 +85,7 @@ defmodule Helix.Test.Software.Setup.Virus do file_id: file_id, is_active?: is_active? } - |> Map.replace(:active, nil) + |> Map.replace!(:active, nil) related = %{ diff --git a/test/support/story/setup.ex b/test/support/story/setup.ex index 5b5c7dd2..c80548d2 100644 --- a/test/support/story/setup.ex +++ b/test/support/story/setup.ex @@ -146,7 +146,7 @@ defmodule Helix.Test.Story.Setup do if opts[:contact_id] do name |> Step.fetch(entity_id, meta, manager) - |> Map.replace(:contact, opts[:contact_id]) + |> Map.replace!(:contact, opts[:contact_id]) else Step.fetch(name, entity_id, meta, manager) end