37 lines
1.2 KiB
Elixir
37 lines
1.2 KiB
Elixir
defmodule Mix.Tasks.BuildingsFetchTest do
|
|
use ExUnit.Case, async: false
|
|
|
|
doctest Mix.Tasks.BuildingsFetch
|
|
|
|
setup do
|
|
tmp_dir =
|
|
Path.join(System.tmp_dir!(), "bldg_fetch_test_#{System.unique_integer([:positive])}")
|
|
|
|
File.mkdir_p!(tmp_dir)
|
|
|
|
prev_cache_dir = Application.get_env(:microwaveprop, :buildings_cache_dir)
|
|
prev_http_get = Application.get_env(:microwaveprop, :ms_footprints_http_get)
|
|
|
|
Application.put_env(:microwaveprop, :buildings_cache_dir, tmp_dir)
|
|
|
|
Application.put_env(:microwaveprop, :ms_footprints_http_get, fn _url, _opts ->
|
|
{:ok, %{status: 200, body: "Location\tQuadkey\tUrl\tSize\n"}}
|
|
end)
|
|
|
|
Microwaveprop.Cache.invalidate(:ms_footprints_index)
|
|
|
|
on_exit(fn ->
|
|
File.rm_rf!(tmp_dir)
|
|
|
|
if prev_cache_dir,
|
|
do: Application.put_env(:microwaveprop, :buildings_cache_dir, prev_cache_dir),
|
|
else: Application.delete_env(:microwaveprop, :buildings_cache_dir)
|
|
|
|
if prev_http_get,
|
|
do: Application.put_env(:microwaveprop, :ms_footprints_http_get, prev_http_get),
|
|
else: Application.delete_env(:microwaveprop, :ms_footprints_http_get)
|
|
end)
|
|
|
|
%{tmp_dir: tmp_dir}
|
|
end
|
|
end
|