livebook/test/support/noop_runtime.ex

46 lines
1.3 KiB
Elixir

defmodule Livebook.Runtime.NoopRuntime do
@moduledoc false
# A runtime that doesn't do any actual evaluation,
# thus not requiring any underlying resources.
defstruct [:started]
def new() do
%__MODULE__{started: false}
end
defimpl Livebook.Runtime do
def describe(_runtime) do
[{"Type", "Noop"}]
end
def connect(runtime), do: {:ok, %{runtime | started: true}}
def connected?(runtime), do: runtime.started
def take_ownership(_, _), do: make_ref()
def disconnect(runtime), do: {:ok, %{runtime | started: false}}
def duplicate(_), do: Livebook.Runtime.NoopRuntime.new()
def evaluate_code(_, _, _, _, _ \\ []), do: :ok
def forget_evaluation(_, _), do: :ok
def drop_container(_, _), do: :ok
def handle_intellisense(_, _, _, _), do: make_ref()
def read_file(_, _), do: raise("not implemented")
def start_smart_cell(_, _, _, _, _), do: :ok
def set_smart_cell_parent_locators(_, _, _), do: :ok
def stop_smart_cell(_, _), do: :ok
def fixed_dependencies?(_), do: false
def add_dependencies(_runtime, code, dependencies) do
Livebook.Runtime.Dependencies.add_dependencies(code, dependencies)
end
def search_packages(_, _, _), do: make_ref()
def put_system_envs(_, _), do: :ok
def delete_system_envs(_, _), do: :ok
end
end