FAILING: Verify mocks on exit.
parent
407f7f5fee
commit
7059f3c44c
|
@ -5,6 +5,7 @@ defmodule FarmbotCeleryScript.CompilerGroupsTest do
|
|||
alias FarmbotCeleryScript.AST
|
||||
alias FarmbotCeleryScript.SysCalls.Stubs
|
||||
alias FarmbotCeleryScript.Compiler.Sequence
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "compilation of point_group in parameter application" do
|
||||
fake_point_ids = [4, 5, 6, 7]
|
||||
|
|
|
@ -5,6 +5,7 @@ defmodule FarmbotCeleryScript.SchedulerTest do
|
|||
alias FarmbotCeleryScript.SysCalls.Stubs
|
||||
|
||||
setup :set_mimic_global
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "schedules a sequence to run in the future" do
|
||||
expect(Stubs, :read_pin, 1, fn _num, _mode ->
|
||||
|
|
|
@ -8,6 +8,8 @@ defmodule FarmbotCeleryScript.SysCallsTest do
|
|||
AST
|
||||
}
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "point, OK" do
|
||||
expect(Stubs, :point, 1, fn _kind, 1 ->
|
||||
%{x: 100, y: 200, z: 300}
|
||||
|
|
|
@ -5,6 +5,8 @@ defmodule FarmbotCeleryScriptTest do
|
|||
alias FarmbotCeleryScript.AST
|
||||
alias FarmbotCeleryScript.SysCalls.Stubs
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "uses default values when no parameter is found" do
|
||||
sequence_ast =
|
||||
%{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
defmodule FarmbotCore.DeviceWorkerTest do
|
||||
use ExUnit.Case, async: false
|
||||
use ExUnit.Case
|
||||
use Mimic
|
||||
|
||||
alias Farmbot.TestSupport.AssetFixtures
|
||||
|
@ -7,7 +7,10 @@ defmodule FarmbotCore.DeviceWorkerTest do
|
|||
alias FarmbotCore.Asset.Device
|
||||
alias FarmbotCore.AssetWorker
|
||||
|
||||
@im_so_sorry 300
|
||||
|
||||
setup :set_mimic_global
|
||||
setup :verify_on_exit!
|
||||
|
||||
def fresh_device(needs_reset \\ true) do
|
||||
params = %{needs_reset: needs_reset}
|
||||
|
@ -22,9 +25,7 @@ defmodule FarmbotCore.DeviceWorkerTest do
|
|||
|
||||
dev = fresh_device()
|
||||
{:ok, _pid} = AssetWorker.start_link(dev, [])
|
||||
|
||||
# Hmmm
|
||||
Process.sleep(300)
|
||||
Process.sleep(@im_so_sorry)
|
||||
end
|
||||
|
||||
test "DO trigger factory reset during update" do
|
||||
|
@ -36,7 +37,7 @@ defmodule FarmbotCore.DeviceWorkerTest do
|
|||
end)
|
||||
|
||||
GenServer.cast(pid, {:new_data, %{dev | needs_reset: true}})
|
||||
Process.sleep(300)
|
||||
Process.sleep(@im_so_sorry)
|
||||
end
|
||||
|
||||
test "DO NOT trigger factory reset during update" do
|
||||
|
@ -48,7 +49,5 @@ defmodule FarmbotCore.DeviceWorkerTest do
|
|||
flunk(nooo)
|
||||
raise nooo
|
||||
end)
|
||||
|
||||
Process.sleep(300)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,11 +7,12 @@ defmodule AutoSyncChannelTest do
|
|||
# alias FarmbotCore.JSON
|
||||
alias FarmbotCore.Asset.{
|
||||
Query,
|
||||
# Command,
|
||||
Command,
|
||||
Sync
|
||||
}
|
||||
|
||||
alias FarmbotExt.{JWT, API, AMQP.ConnectionWorker}
|
||||
setup :verify_on_exit!
|
||||
|
||||
@fake_jwt "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZ" <>
|
||||
"G1pbkBhZG1pbi5jb20iLCJpYXQiOjE1MDIxMjcxMTcsImp0a" <>
|
||||
|
@ -71,189 +72,189 @@ defmodule AutoSyncChannelTest do
|
|||
pretend_network_returned(%{conn: fake_con, chan: fake_chan})
|
||||
end
|
||||
|
||||
# test "network returns `nil`" do
|
||||
# results = pretend_network_returned(nil)
|
||||
# %{conn: has_conn, chan: has_chan, preloaded: is_preloaded} = results
|
||||
test "network returns `nil`" do
|
||||
results = pretend_network_returned(nil)
|
||||
%{conn: has_conn, chan: has_chan, preloaded: is_preloaded} = results
|
||||
|
||||
# assert has_chan == nil
|
||||
# assert has_conn == nil
|
||||
# assert is_preloaded
|
||||
# end
|
||||
assert has_chan == nil
|
||||
assert has_conn == nil
|
||||
assert is_preloaded
|
||||
end
|
||||
|
||||
# test "network returns unexpected object (probably an error)" do
|
||||
# results = pretend_network_returned({:something, :else})
|
||||
# %{conn: has_conn, chan: has_chan, preloaded: is_preloaded} = results
|
||||
test "network returns unexpected object (probably an error)" do
|
||||
results = pretend_network_returned({:something, :else})
|
||||
%{conn: has_conn, chan: has_chan, preloaded: is_preloaded} = results
|
||||
|
||||
# assert has_chan == nil
|
||||
# assert has_conn == nil
|
||||
# assert is_preloaded
|
||||
# end
|
||||
assert has_chan == nil
|
||||
assert has_conn == nil
|
||||
assert is_preloaded
|
||||
end
|
||||
|
||||
# test "expected object bootstraps process state" do
|
||||
# fake_con = %{fake: :conn}
|
||||
# fake_chan = %{fake: :chan}
|
||||
# fake_response = %{conn: fake_con, chan: fake_chan}
|
||||
test "expected object bootstraps process state" do
|
||||
fake_con = %{fake: :conn}
|
||||
fake_chan = %{fake: :chan}
|
||||
fake_response = %{conn: fake_con, chan: fake_chan}
|
||||
|
||||
# results = pretend_network_returned(fake_response)
|
||||
results = pretend_network_returned(fake_response)
|
||||
|
||||
# %{conn: real_conn, chan: real_chan, preloaded: is_preloaded, pid: pid} = results
|
||||
%{conn: real_conn, chan: real_chan, preloaded: is_preloaded, pid: pid} = results
|
||||
|
||||
# assert real_chan == fake_chan
|
||||
# assert real_conn == fake_con
|
||||
# assert is_preloaded
|
||||
# send(pid, {:basic_cancel, "--NOT USED--"})
|
||||
# assert_receive :close_channel_called, 150
|
||||
# end
|
||||
assert real_chan == fake_chan
|
||||
assert real_conn == fake_con
|
||||
assert is_preloaded
|
||||
send(pid, {:basic_cancel, "--NOT USED--"})
|
||||
assert_receive :close_channel_called, 150
|
||||
end
|
||||
|
||||
# test "catch-all clause for inbound AMQP messages" do
|
||||
# fake_con = %{fake: :conn}
|
||||
# fake_chan = %{fake: :chan}
|
||||
# fake_response = %{conn: fake_con, chan: fake_chan}
|
||||
test "catch-all clause for inbound AMQP messages" do
|
||||
fake_con = %{fake: :conn}
|
||||
fake_chan = %{fake: :chan}
|
||||
fake_response = %{conn: fake_con, chan: fake_chan}
|
||||
|
||||
# %{pid: pid} = pretend_network_returned(fake_response)
|
||||
%{pid: pid} = pretend_network_returned(fake_response)
|
||||
|
||||
# payload =
|
||||
# JSON.encode!(%{
|
||||
# args: %{label: "xyz"}
|
||||
# })
|
||||
payload =
|
||||
JSON.encode!(%{
|
||||
args: %{label: "xyz"}
|
||||
})
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: "WRONG!"}})
|
||||
# assert_receive {:rpc_reply_called, %{fake: :chan}, "device_15", "xyz"}
|
||||
# end
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: "WRONG!"}})
|
||||
assert_receive {:rpc_reply_called, %{fake: :chan}, "device_15", "xyz"}
|
||||
end
|
||||
|
||||
# test "wont autosync unknown assets" do
|
||||
# fake_con = %{fake: :conn}
|
||||
# fake_chan = %{fake: :chan}
|
||||
# fake_response = %{conn: fake_con, chan: fake_chan}
|
||||
test "wont autosync unknown assets" do
|
||||
fake_con = %{fake: :conn}
|
||||
fake_chan = %{fake: :chan}
|
||||
fake_response = %{conn: fake_con, chan: fake_chan}
|
||||
|
||||
# %{pid: pid} = pretend_network_returned(fake_response)
|
||||
%{pid: pid} = pretend_network_returned(fake_response)
|
||||
|
||||
# payload =
|
||||
# JSON.encode!(%{
|
||||
# args: %{label: "xyz"}
|
||||
# })
|
||||
payload =
|
||||
JSON.encode!(%{
|
||||
args: %{label: "xyz"}
|
||||
})
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: "bot.device_15.sync.SavedGarden.999"}})
|
||||
# assert_receive {:rpc_reply_called, %{fake: :chan}, "device_15", "xyz"}
|
||||
# end
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: "bot.device_15.sync.SavedGarden.999"}})
|
||||
assert_receive {:rpc_reply_called, %{fake: :chan}, "device_15", "xyz"}
|
||||
end
|
||||
|
||||
# test "ignores asset deletion when auto_sync is off" do
|
||||
# %{pid: pid} = under_normal_conditions()
|
||||
# test_pid = self()
|
||||
# payload = '{"args":{"label":"foo"}}'
|
||||
# key = "bot.device_15.sync.Device.999"
|
||||
test "ignores asset deletion when auto_sync is off" do
|
||||
%{pid: pid} = under_normal_conditions()
|
||||
test_pid = self()
|
||||
payload = '{"args":{"label":"foo"}}'
|
||||
key = "bot.device_15.sync.Device.999"
|
||||
|
||||
# stub(Query, :auto_sync?, fn ->
|
||||
# send(test_pid, :called_auto_sync?)
|
||||
# false
|
||||
# end)
|
||||
stub(Query, :auto_sync?, fn ->
|
||||
send(test_pid, :called_auto_sync?)
|
||||
false
|
||||
end)
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
# assert_receive :called_auto_sync?
|
||||
# end
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
assert_receive :called_auto_sync?
|
||||
end
|
||||
|
||||
# test "handles Device assets" do
|
||||
# %{pid: pid} = under_normal_conditions()
|
||||
# test_pid = self()
|
||||
# payload = '{"args":{"label":"foo"},"body":{}}'
|
||||
# key = "bot.device_15.sync.Device.999"
|
||||
# stub(Query, :auto_sync?, fn -> true end)
|
||||
test "handles Device assets" do
|
||||
%{pid: pid} = under_normal_conditions()
|
||||
test_pid = self()
|
||||
payload = '{"args":{"label":"foo"},"body":{}}'
|
||||
key = "bot.device_15.sync.Device.999"
|
||||
stub(Query, :auto_sync?, fn -> true end)
|
||||
|
||||
# stub(Command, :update, fn x, y, z ->
|
||||
# send(test_pid, {:update_called, x, y, z})
|
||||
# :ok
|
||||
# end)
|
||||
stub(Command, :update, fn x, y, z ->
|
||||
send(test_pid, {:update_called, x, y, z})
|
||||
:ok
|
||||
end)
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
# assert_receive {:update_called, "Device", 999, %{}}
|
||||
# end
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
assert_receive {:update_called, "Device", 999, %{}}
|
||||
end
|
||||
|
||||
# def simple_asset_test_singleton(module_name) do
|
||||
# %{pid: pid} = under_normal_conditions()
|
||||
# test_pid = self()
|
||||
# payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
# key = "bot.device_15.sync.#{module_name}.999"
|
||||
def simple_asset_test_singleton(module_name) do
|
||||
%{pid: pid} = under_normal_conditions()
|
||||
test_pid = self()
|
||||
payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
key = "bot.device_15.sync.#{module_name}.999"
|
||||
|
||||
# stub(Query, :auto_sync?, fn -> true end)
|
||||
stub(Query, :auto_sync?, fn -> true end)
|
||||
|
||||
# stub(Command, :update, fn x, y, z ->
|
||||
# send(test_pid, {:update_called, x, y, z})
|
||||
# :ok
|
||||
# end)
|
||||
stub(Command, :update, fn x, y, z ->
|
||||
send(test_pid, {:update_called, x, y, z})
|
||||
:ok
|
||||
end)
|
||||
|
||||
# stub(Command, :update, fn x, y, z ->
|
||||
# send(test_pid, {:update_called, x, y, z})
|
||||
# :ok
|
||||
# end)
|
||||
stub(Command, :update, fn x, y, z ->
|
||||
send(test_pid, {:update_called, x, y, z})
|
||||
:ok
|
||||
end)
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
|
||||
# assert_receive {:update_called, ^module_name, 999, %{"foo" => "bar"}}
|
||||
# end
|
||||
assert_receive {:update_called, ^module_name, 999, %{"foo" => "bar"}}
|
||||
end
|
||||
|
||||
# test "handles auto_sync of 'no_cache' when auto_sync is false" do
|
||||
# test_pid = self()
|
||||
# %{pid: pid} = under_normal_conditions()
|
||||
test "handles auto_sync of 'no_cache' when auto_sync is false" do
|
||||
test_pid = self()
|
||||
%{pid: pid} = under_normal_conditions()
|
||||
|
||||
# key = "bot.device_15.sync.FbosConfig.999"
|
||||
# payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
key = "bot.device_15.sync.FbosConfig.999"
|
||||
payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
|
||||
# stub(Query, :auto_sync?, fn ->
|
||||
# send(test_pid, :called_auto_sync?)
|
||||
# false
|
||||
# end)
|
||||
stub(Query, :auto_sync?, fn ->
|
||||
send(test_pid, :called_auto_sync?)
|
||||
false
|
||||
end)
|
||||
|
||||
# stub(Command, :update, fn kind, id, params ->
|
||||
# send(test_pid, {:update_called, kind, id, params})
|
||||
# :ok
|
||||
# end)
|
||||
stub(Command, :update, fn kind, id, params ->
|
||||
send(test_pid, {:update_called, kind, id, params})
|
||||
:ok
|
||||
end)
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
# assert_receive :called_auto_sync?
|
||||
# assert_receive {:update_called, "FbosConfig", 999, %{"foo" => "bar"}}
|
||||
# end
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
assert_receive :called_auto_sync?
|
||||
assert_receive {:update_called, "FbosConfig", 999, %{"foo" => "bar"}}
|
||||
end
|
||||
|
||||
# test "auto_sync disabled, resource not in @cache_kinds" do
|
||||
# test_pid = self()
|
||||
# %{pid: pid} = under_normal_conditions()
|
||||
test "auto_sync disabled, resource not in @cache_kinds" do
|
||||
test_pid = self()
|
||||
%{pid: pid} = under_normal_conditions()
|
||||
|
||||
# key = "bot.device_15.sync.Point.999"
|
||||
# payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
key = "bot.device_15.sync.Point.999"
|
||||
payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
|
||||
# stub(Query, :auto_sync?, fn ->
|
||||
# send(test_pid, :called_auto_sync?)
|
||||
# false
|
||||
# end)
|
||||
stub(Query, :auto_sync?, fn ->
|
||||
send(test_pid, :called_auto_sync?)
|
||||
false
|
||||
end)
|
||||
|
||||
# stub(Command, :new_changeset, fn kind, id, params ->
|
||||
# send(test_pid, {:new_changeset_called, kind, id, params})
|
||||
# :ok
|
||||
# end)
|
||||
stub(Command, :new_changeset, fn kind, id, params ->
|
||||
send(test_pid, {:new_changeset_called, kind, id, params})
|
||||
:ok
|
||||
end)
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
# assert_receive {:new_changeset_called, "Point", 999, %{"foo" => "bar"}}
|
||||
# end
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
assert_receive {:new_changeset_called, "Point", 999, %{"foo" => "bar"}}
|
||||
end
|
||||
|
||||
# test "handles FbosConfig", do: simple_asset_test_singleton("FbosConfig")
|
||||
# test "handles FirmwareConfig", do: simple_asset_test_singleton("FirmwareConfig")
|
||||
# test "handles FarmwareEnv", do: simple_asset_test_plural("FarmwareEnv")
|
||||
# test "handles FarmwareInstallation", do: simple_asset_test_plural("FarmwareInstallation")
|
||||
test "handles FbosConfig", do: simple_asset_test_singleton("FbosConfig")
|
||||
test "handles FirmwareConfig", do: simple_asset_test_singleton("FirmwareConfig")
|
||||
test "handles FarmwareEnv", do: simple_asset_test_plural("FarmwareEnv")
|
||||
test "handles FarmwareInstallation", do: simple_asset_test_plural("FarmwareInstallation")
|
||||
|
||||
# defp simple_asset_test_plural(module_name) do
|
||||
# %{pid: pid} = under_normal_conditions()
|
||||
# test_pid = self()
|
||||
# payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
# key = "bot.device_15.sync.#{module_name}.999"
|
||||
defp simple_asset_test_plural(module_name) do
|
||||
%{pid: pid} = under_normal_conditions()
|
||||
test_pid = self()
|
||||
payload = '{"args":{"label":"foo"},"body":{"foo": "bar"}}'
|
||||
key = "bot.device_15.sync.#{module_name}.999"
|
||||
|
||||
# stub(Query, :auto_sync?, fn -> true end)
|
||||
stub(Query, :auto_sync?, fn -> true end)
|
||||
|
||||
# stub(Command, :update, fn x, y, z ->
|
||||
# send(test_pid, {:update_called, x, y, z})
|
||||
# :ok
|
||||
# end)
|
||||
stub(Command, :update, fn x, y, z ->
|
||||
send(test_pid, {:update_called, x, y, z})
|
||||
:ok
|
||||
end)
|
||||
|
||||
# send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
send(pid, {:basic_deliver, payload, %{routing_key: key}})
|
||||
|
||||
# assert_receive {:update_called, ^module_name, 999, %{"foo" => "bar"}}
|
||||
# end
|
||||
assert_receive {:update_called, ^module_name, 999, %{"foo" => "bar"}}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,6 +9,7 @@ defmodule FarmbotExt.API.PreloaderTest do
|
|||
}
|
||||
|
||||
alias FarmbotExt.{API, API.Preloader}
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "get sync error" do
|
||||
expect(API, :get_changeset, fn Sync ->
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
Application.ensure_all_started(:farmbot)
|
||||
timeout = System.get_env("EXUNIT_TIMEOUT")
|
||||
|
||||
Mimic.copy(FarmbotCore.Asset.Query)
|
||||
Mimic.copy(FarmbotExt.API)
|
||||
Mimic.copy(FarmbotExt.AMQP.ConnectionWorker)
|
||||
Mimic.copy(FarmbotCeleryScript.SysCalls.Stubs)
|
||||
Mimic.copy(FarmbotCore.Asset.Command)
|
||||
Mimic.copy(FarmbotCore.Asset.Query)
|
||||
Mimic.copy(FarmbotExt.AMQP.ConnectionWorker)
|
||||
Mimic.copy(FarmbotExt.API)
|
||||
|
||||
if timeout do
|
||||
ExUnit.start(assert_receive_timeout: String.to_integer(timeout))
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
defmodule FarmbotFirmware.UARTTransportTest do
|
||||
use ExUnit.Case
|
||||
use Mimic
|
||||
|
||||
setup [:verify_on_exit!]
|
||||
doctest FarmbotFirmware.UARTTransport
|
||||
alias FarmbotFirmware.{UartDefaultAdapter, UARTTransport}
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "UARTTransport.init/1" do
|
||||
expect(UartDefaultAdapter, :start_link, fn ->
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule FarmbotFirmware.UARTDefaultAdapterTest do
|
|||
use ExUnit.Case
|
||||
use Mimic
|
||||
|
||||
setup [:verify_on_exit!]
|
||||
setup :verify_on_exit!
|
||||
alias FarmbotFirmware.{UartDefaultAdapter}
|
||||
|
||||
test "delegates" do
|
||||
|
@ -34,7 +34,4 @@ defmodule FarmbotFirmware.UARTDefaultAdapterTest do
|
|||
UartDefaultAdapter.stop(pid)
|
||||
UartDefaultAdapter.write(pid, str)
|
||||
end
|
||||
|
||||
test "configuration" do
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule FarmbotOs.AvrdudeTest do
|
|||
|
||||
use Mimic
|
||||
|
||||
setup [:verify_on_exit!]
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "works" do
|
||||
File.touch("/tmp/wow")
|
||||
|
|
|
@ -4,6 +4,7 @@ defmodule FarmbotOS.Configurator.RouterTest do
|
|||
use Plug.Test
|
||||
|
||||
use Mimic
|
||||
setup :verify_on_exit!
|
||||
|
||||
@opts Router.init([])
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ defmodule FarmbotOS.SysCallsTest do
|
|||
}
|
||||
|
||||
use Mimic
|
||||
setup :verify_on_exit!
|
||||
|
||||
test "emergency_unlock" do
|
||||
expect(FarmbotFirmware, :command, fn {:command_emergency_unlock, []} ->
|
||||
|
|
Loading…
Reference in New Issue