summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuanjo Rodriguez <juanjo@apache.org>2020-05-25 08:11:45 +0200
committerJuanjo Rodriguez <jjrodrig@gmail.com>2020-05-26 22:40:11 +0200
commit4e64f5b492990b03f7f58a47ec173d048a3f381f (patch)
treed153801f40d4057af26afefd79abdd903332b8c6
parent08a0c6b6ff39045c0df7f40b57777afb6dbbd89f (diff)
downloadcouchdb-4e64f5b492990b03f7f58a47ec173d048a3f381f.tar.gz
move compact and replicate functions into CouchTestCase shared module
-rw-r--r--test/elixir/lib/couch/db_test.ex56
-rw-r--r--test/elixir/test/auth_cache_test.exs15
-rw-r--r--test/elixir/test/compact_test.exs12
-rw-r--r--test/elixir/test/partition_size_limit_test.exs12
-rw-r--r--test/elixir/test/purge_test.exs20
-rw-r--r--test/elixir/test/replication_test.exs38
-rw-r--r--test/elixir/test/rev_stemming_test.exs36
-rw-r--r--test/elixir/test/users_db_test.exs22
8 files changed, 56 insertions, 155 deletions
diff --git a/test/elixir/lib/couch/db_test.ex b/test/elixir/lib/couch/db_test.ex
index e3f32f839..a61db1424 100644
--- a/test/elixir/lib/couch/db_test.ex
+++ b/test/elixir/lib/couch/db_test.ex
@@ -278,6 +278,60 @@ defmodule Couch.DBTest do
resp.body
end
+ def compact(db_name) do
+ resp = Couch.post("/#{db_name}/_compact")
+ assert resp.status_code == 202
+
+ retry_until(
+ fn -> Map.get(info(db_name), "compact_running") == false end,
+ 200,
+ 10_000
+ )
+
+ resp.body
+ end
+
+ def replicate(src, tgt, options \\ []) do
+ username = System.get_env("EX_USERNAME") || "adm"
+ password = System.get_env("EX_PASSWORD") || "pass"
+
+ {userinfo, options} = Keyword.pop(options, :userinfo)
+
+ userinfo =
+ if userinfo == nil do
+ "#{username}:#{password}"
+ else
+ userinfo
+ end
+
+ src = set_user(src, userinfo)
+ tgt = set_user(tgt, userinfo)
+
+ defaults = [headers: [], body: %{}, timeout: 30_000]
+ options = defaults |> Keyword.merge(options) |> Enum.into(%{})
+
+ %{body: body} = options
+ body = [source: src, target: tgt] |> Enum.into(body)
+ options = Map.put(options, :body, body)
+
+ resp = Couch.post("/_replicate", Enum.to_list(options))
+ assert HTTPotion.Response.success?(resp), "#{inspect(resp)}"
+ resp.body
+ end
+
+ defp set_user(uri, userinfo) do
+ case URI.parse(uri) do
+ %{scheme: nil} ->
+ uri
+
+ %{userinfo: nil} = uri ->
+ URI.to_string(Map.put(uri, :userinfo, userinfo))
+
+ _ ->
+ uri
+ end
+ end
+
def view(db_name, view_name, options \\ nil, keys \\ nil) do
[view_root, view_name] = String.split(view_name, "/")
@@ -423,7 +477,7 @@ defmodule Couch.DBTest do
Enum.each(setting.nodes, fn node_value ->
node = elem(node_value, 0)
value = elem(node_value, 1)
-
+
if value == ~s(""\\n) or value == "" or value == nil do
resp =
Couch.delete(
diff --git a/test/elixir/test/auth_cache_test.exs b/test/elixir/test/auth_cache_test.exs
index 2ba396de7..8b7c29c71 100644
--- a/test/elixir/test/auth_cache_test.exs
+++ b/test/elixir/test/auth_cache_test.exs
@@ -66,14 +66,6 @@ defmodule AuthCacheTest do
sess
end
- defp wait_until_compact_complete(db_name) do
- retry_until(
- fn -> Map.get(info(db_name), "compact_running") == false end,
- 200,
- 10_000
- )
- end
-
defp assert_cache(event, user, password, expect \\ :expect_login_success) do
hits_before = hits()
misses_before = misses()
@@ -112,12 +104,6 @@ defmodule AuthCacheTest do
end
end
- defp compact(db_name) do
- resp = Couch.post("/#{db_name}/_compact")
- assert resp.status_code == 202
- resp.body
- end
-
def save_doc(db_name, body) do
resp = Couch.put("/#{db_name}/#{body["_id"]}", body: body)
assert resp.status_code in [201, 202]
@@ -206,7 +192,6 @@ defmodule AuthCacheTest do
# there was a cache hit
assert_cache(:expect_hit, "johndoe", "123456")
compact(db_name)
- wait_until_compact_complete(db_name)
assert_cache(:expect_hit, "johndoe", "123456")
end
end
diff --git a/test/elixir/test/compact_test.exs b/test/elixir/test/compact_test.exs
index d99a7a78e..461a1d347 100644
--- a/test/elixir/test/compact_test.exs
+++ b/test/elixir/test/compact_test.exs
@@ -82,18 +82,6 @@ defmodule CompactTest do
assert Couch.post("/#{db}/_ensure_full_commit").body["ok"] == true
end
- defp compact(db) do
- assert Couch.post("/#{db}/_compact").status_code == 202
-
- retry_until(
- fn ->
- Couch.get("/#{db}").body["compact_running"] == false
- end,
- 200,
- 20_000
- )
- end
-
defp get_info(db) do
Couch.get("/#{db}").body
end
diff --git a/test/elixir/test/partition_size_limit_test.exs b/test/elixir/test/partition_size_limit_test.exs
index 5141d0d8b..6ef686611 100644
--- a/test/elixir/test/partition_size_limit_test.exs
+++ b/test/elixir/test/partition_size_limit_test.exs
@@ -68,18 +68,6 @@ defmodule PartitionSizeLimitTest do
assert resp.status_code in [201, 202]
end
- defp compact(db) do
- assert Couch.post("/#{db}/_compact").status_code == 202
-
- retry_until(
- fn ->
- Couch.get("/#{db}").body["compact_running"] == false
- end,
- 200,
- 20_000
- )
- end
-
test "fill partition manually", context do
db_name = context[:db_name]
partition = "foo"
diff --git a/test/elixir/test/purge_test.exs b/test/elixir/test/purge_test.exs
index 3920b3f26..5fc03f16b 100644
--- a/test/elixir/test/purge_test.exs
+++ b/test/elixir/test/purge_test.exs
@@ -53,12 +53,7 @@ defmodule PurgeTest do
test_all_docs_twice(db_name, num_docs, 0, 2)
# purge sequences are preserved after compaction (COUCHDB-1021)
- resp = Couch.post("/#{db_name}/_compact")
- assert resp.status_code == 202
-
- retry_until(fn ->
- info(db_name)["compact_running"] == false
- end)
+ compact(db_name)
compacted_info = info(db_name)
assert compacted_info["purge_seq"] == purged_info["purge_seq"]
@@ -127,19 +122,6 @@ defmodule PurgeTest do
delete_db(db_name_b)
end
- def replicate(src, tgt, options \\ []) do
- defaults = [headers: [], body: %{}, timeout: 30_000]
- options = defaults |> Keyword.merge(options) |> Enum.into(%{})
-
- %{body: body} = options
- body = [source: src, target: tgt] |> Enum.into(body)
- options = Map.put(options, :body, body)
-
- resp = Couch.post("/_replicate", Enum.to_list(options))
- assert HTTPotion.Response.success?(resp), "#{inspect(resp)}"
- resp.body
- end
-
defp open_doc(db_name, id, expect \\ 200) do
resp = Couch.get("/#{db_name}/#{id}")
assert resp.status_code == expect
diff --git a/test/elixir/test/replication_test.exs b/test/elixir/test/replication_test.exs
index bdd683e97..075f65bfa 100644
--- a/test/elixir/test/replication_test.exs
+++ b/test/elixir/test/replication_test.exs
@@ -7,7 +7,6 @@ defmodule ReplicationTest do
"""
# TODO: Parameterize these
- @admin_account "adm:pass"
@db_pairs_prefixes [
{"remote-to-remote", "http://127.0.0.1:15984/", "http://127.0.0.1:15984/"}
]
@@ -1584,30 +1583,6 @@ defmodule ReplicationTest do
resp.body
end
- def replicate(src, tgt, options \\ []) do
- {userinfo, options} = Keyword.pop(options, :userinfo)
-
- userinfo =
- if userinfo == nil do
- @admin_account
- else
- userinfo
- end
-
- src = set_user(src, userinfo)
- tgt = set_user(tgt, userinfo)
-
- defaults = [headers: [], body: %{}, timeout: 30_000]
- options = defaults |> Keyword.merge(options) |> Enum.into(%{})
-
- %{body: body} = options
- body = [source: src, target: tgt] |> Enum.into(body)
- options = Map.put(options, :body, body)
-
- resp = Couch.post("/_replicate", Enum.to_list(options))
- assert HTTPotion.Response.success?(resp), "#{inspect(resp)}"
- resp.body
- end
def cancel_replication(src, tgt) do
body = %{:cancel => true}
@@ -1737,19 +1712,6 @@ defmodule ReplicationTest do
end)
end
- def set_user(uri, userinfo) do
- case URI.parse(uri) do
- %{scheme: nil} ->
- uri
-
- %{userinfo: nil} = uri ->
- URI.to_string(Map.put(uri, :userinfo, userinfo))
-
- _ ->
- uri
- end
- end
-
def get_att1_data do
File.read!(Path.expand("data/lorem.txt", __DIR__))
end
diff --git a/test/elixir/test/rev_stemming_test.exs b/test/elixir/test/rev_stemming_test.exs
index 51e959b48..9a16d481d 100644
--- a/test/elixir/test/rev_stemming_test.exs
+++ b/test/elixir/test/rev_stemming_test.exs
@@ -105,7 +105,6 @@ defmodule RevStemmingTest do
assert length(resp.body["_revisions"]["ids"]) == @new_limit
compact(db_name)
- wait_until_compact_complete(db_name)
# force reload because ETags don't honour compaction
resp =
@@ -147,28 +146,6 @@ defmodule RevStemmingTest do
end
end
- defp build_uri(db_name) do
- username = System.get_env("EX_USERNAME") || "adm"
- password = System.get_env("EX_PASSWORD") || "pass"
-
- "/#{db_name}"
- |> Couch.process_url()
- |> URI.parse()
- |> Map.put(:userinfo, "#{username}:#{password}")
- |> URI.to_string()
- end
-
- defp replicate(src, tgt) do
- src_uri = build_uri(src)
- tgt_uri = build_uri(tgt)
-
- body = %{source: src_uri, target: tgt_uri}
-
- resp = Couch.post("/_replicate", body: body)
- assert resp.status_code == 200
- resp.body
- end
-
def delete_db_on_exit(db_names) when is_list(db_names) do
on_exit(fn ->
Enum.each(db_names, fn name ->
@@ -177,17 +154,4 @@ defmodule RevStemmingTest do
end)
end
- defp compact(db_name) do
- resp = Couch.post("/#{db_name}/_compact")
- assert resp.status_code == 202
- resp.body
- end
-
- defp wait_until_compact_complete(db_name) do
- retry_until(
- fn -> Map.get(info(db_name), "compact_running") == false end,
- 200,
- 10_000
- )
- end
end
diff --git a/test/elixir/test/users_db_test.exs b/test/elixir/test/users_db_test.exs
index 1d34d8c9e..62877d542 100644
--- a/test/elixir/test/users_db_test.exs
+++ b/test/elixir/test/users_db_test.exs
@@ -50,28 +50,6 @@ defmodule UsersDbTest do
create_db(@users_db_name)
end
- defp replicate(source, target, rep_options \\ []) do
- headers = Keyword.get(rep_options, :headers, [])
- body = Keyword.get(rep_options, :body, %{})
-
- body =
- body
- |> Map.put("source", source)
- |> Map.put("target", target)
-
- retry_until(
- fn ->
- resp = Couch.post("/_replicate", headers: headers, body: body, timeout: 10_000)
- assert HTTPotion.Response.success?(resp)
- assert resp.status_code == 200
- assert resp.body["ok"]
- resp
- end,
- 500,
- 20_000
- )
- end
-
defp save_as(db_name, doc, options) do
session = Keyword.get(options, :use_session)
expect_response = Keyword.get(options, :expect_response, [201, 202])