You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2018/07/25 17:44:25 UTC
[couchdb] branch elixir-suite updated: Port batch_save.js (#1467)
This is an automated email from the ASF dual-hosted git repository.
garren pushed a commit to branch elixir-suite
in repository https://gitbox.apache.org/repos/asf/couchdb.git
The following commit(s) were added to refs/heads/elixir-suite by this push:
new effdc4e Port batch_save.js (#1467)
effdc4e is described below
commit effdc4ec8af822d73d3431043c598b2cbb5d1286
Author: Jay Doane <ja...@gmail.com>
AuthorDate: Wed Jul 25 10:44:22 2018 -0700
Port batch_save.js (#1467)
---
test/elixir/test/batch_save_test.exs | 42 ++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/test/elixir/test/batch_save_test.exs b/test/elixir/test/batch_save_test.exs
new file mode 100644
index 0000000..4863a8d
--- /dev/null
+++ b/test/elixir/test/batch_save_test.exs
@@ -0,0 +1,42 @@
+defmodule BatchSaveTest do
+ use CouchTestCase
+
+ @moduletag :batch_save
+
+ @moduledoc """
+ Test CouchDB batch save
+ This is a port of batch_save.js
+ """
+
+ @doc_count 100
+
+ @tag :with_db
+ test "batch put", context do
+ path_fun = &("/#{&1}/#{&2}")
+ run(&Couch.put/2, path_fun, context[:db_name], @doc_count)
+ end
+
+ @tag :with_db
+ test "batch post", context do
+ path_fun = fn(db_name, _) -> "/#{db_name}" end
+ run(&Couch.post/2, path_fun, context[:db_name], @doc_count)
+ end
+
+ @tag :with_db
+ test "batch put with identical doc ids", context do
+ path_fun = fn(db_name, _) -> "/#{db_name}/foo" end
+ run(&Couch.put/2, path_fun, context[:db_name], 1)
+ end
+
+ defp run(req_fun, path_fun, db_name, expected_doc_count) do
+ for i <- 1..@doc_count do
+ opts = [body: %{a: i, b: i}, query: %{batch: "ok"}]
+ resp = req_fun.(path_fun.(db_name, i), opts)
+ assert resp.body["ok"] and resp.status_code == 202
+ end
+ retry_until(fn ->
+ Couch.get("/#{db_name}").body["doc_count"] == expected_doc_count
+ end)
+ end
+
+end