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/10/16 10:35:25 UTC
[couchdb] 02/03: fix use of meck in unit tests
This is an automated email from the ASF dual-hosted git repository.
garren pushed a commit to branch partition-review-fixes
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit fd9d87ed9c984234625214b47d366078a0165ad7
Author: Garren Smith <ga...@gmail.com>
AuthorDate: Tue Oct 16 12:23:19 2018 +0200
fix use of meck in unit tests
---
src/couch/test/couchdb_views_tests.erl | 1 -
src/fabric/src/fabric_view_all_docs.erl | 177 +++++++++++++++++++-------------
src/mem3/src/mem3.erl | 26 +++--
3 files changed, 122 insertions(+), 82 deletions(-)
diff --git a/src/couch/test/couchdb_views_tests.erl b/src/couch/test/couchdb_views_tests.erl
index a023a8c..1b1a8e5 100644
--- a/src/couch/test/couchdb_views_tests.erl
+++ b/src/couch/test/couchdb_views_tests.erl
@@ -60,7 +60,6 @@ setup_legacy() ->
lists:foreach(fun(File) -> file:delete(File) end, Files),
% copy old db file into db dir
- ?debugFmt("copy ~p ~p", [OldDbFilePath, NewDbFilePath]),
{ok, _} = file:copy(OldDbFilePath, NewDbFilePath),
% copy old view file into view dir
diff --git a/src/fabric/src/fabric_view_all_docs.erl b/src/fabric/src/fabric_view_all_docs.erl
index 635f2d8..6eb626a 100644
--- a/src/fabric/src/fabric_view_all_docs.erl
+++ b/src/fabric/src/fabric_view_all_docs.erl
@@ -327,85 +327,114 @@ cancel_read_pids(Pids) ->
-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").
+ check_partitions_work_with_shards_test_() ->
+ {
+ foreach,
+ fun setup/0,
+ fun teardown/1,
+ [
+ t_shards_for_partition_gets_partitioned_shards(),
+ t_shards_for_no_partition_gets_all_shards(),
+ t_shards_for_different_partitions_gets_all_shards(),
+ t_shards_for_no_startkey_all_shards(),
+ t_shards_for_no_endkey_all_shards(),
+ t_shards_for_no_keys_all_shards(),
+ t_shards_for_non_binary_keys_all_shards()
- shards_for_partition_gets_partitioned_shards_test() ->
- DbName = <<"db">>,
- Args = #mrargs{
- start_key = <<"pk:id">>,
- end_key = <<"pk:idZ">>,
- extra = [{partitioned, true}]
- },
- meck:expect(mem3, shards, fun(<<"db">>, <<"pk:foo">>) -> [] end),
- shards(DbName, Args),
- meck:validate(mem3),
- meck:unload(mem3).
-
- shards_for_no_partition_gets_all_shards_test() ->
- DbName = <<"db">>,
- Args = #mrargs{
- start_key = <<"pk:id">>,
- end_key = <<"pk:idZ">>,
- extra = [{partitioned, false}]
- },
- meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
- shards(DbName, Args),
- meck:validate(mem3),
- meck:unload(mem3).
+ ]
+ }.
+
+ setup() ->
+ ok.
+
+ teardown(_) ->
+ meck:unload().
+
+ t_shards_for_partition_gets_partitioned_shards() ->
+ ?_test(begin
+ DbName = <<"db">>,
+ Args = #mrargs{
+ start_key = <<"pk:id">>,
+ end_key = <<"pk:idZ">>,
+ extra = [{partitioned, true}]
+ },
+ meck:expect(mem3, shards, fun(<<"db">>, <<"pk:foo">>) -> [] end),
+ shards(DbName, Args),
+ ?assertEqual(1, meck:num_calls(mem3, shards, '_'))
+ end).
+
+ t_shards_for_no_partition_gets_all_shards() ->
+ ?_test(begin
+ DbName = <<"db">>,
+ Args = #mrargs{
+ start_key = <<"pk:id">>,
+ end_key = <<"pk:idZ">>,
+ extra = [{partitioned, false}]
+ },
+ meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
+ shards(DbName, Args),
+ ?assertEqual(1, meck:num_calls(mem3, shards, '_'))
+ end).
- shards_for_different_partitions_gets_all_shards_test() ->
- DbName = <<"db">>,
- Args = #mrargs{
- start_key = <<"pk1:id">>,
- end_key = <<"pk2:idZ">>,
- extra = [{partitioned, true}]
- },
- meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
- shards(DbName, Args),
- meck:validate(mem3),
- meck:unload(mem3).
+ t_shards_for_different_partitions_gets_all_shards() ->
+ ?_test(begin
+ DbName = <<"db">>,
+ Args = #mrargs{
+ start_key = <<"pk1:id">>,
+ end_key = <<"pk2:idZ">>,
+ extra = [{partitioned, true}]
+ },
+ meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
+ shards(DbName, Args),
+ ?assertEqual(1, meck:num_calls(mem3, shards, '_'))
+ end).
- shards_for_no_startkey_all_shards_test() ->
- DbName = <<"db">>,
- Args = #mrargs{
- end_key = <<"pk:idZ">>,
- extra = [{partitioned, true}]
- },
- meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
- shards(DbName, Args),
- meck:validate(mem3),
- meck:unload(mem3).
+ t_shards_for_no_startkey_all_shards() ->
+ ?_test(begin
+ DbName = <<"db">>,
+ Args = #mrargs{
+ end_key = <<"pk:idZ">>,
+ extra = [{partitioned, true}]
+ },
+ meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
+ shards(DbName, Args),
+ ?assertEqual(1, meck:num_calls(mem3, shards, '_'))
+ end).
- shards_for_no_endkey_all_shards_test() ->
- DbName = <<"db">>,
- Args = #mrargs{
- start_key = <<"pk:idZ">>,
- extra = [{partitioned, true}]
- },
- meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
- shards(DbName, Args),
- meck:validate(mem3),
- meck:unload(mem3).
+ t_shards_for_no_endkey_all_shards() ->
+ ?_test(begin
+ DbName = <<"db">>,
+ Args = #mrargs{
+ start_key = <<"pk:idZ">>,
+ extra = [{partitioned, true}]
+ },
+ meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
+ shards(DbName, Args),
+ ?assertEqual(1, meck:num_calls(mem3, shards, '_'))
+ end).
- shards_for_no_keys_all_shards_test() ->
- DbName = <<"db">>,
- Args = #mrargs{
- extra = [{partitioned, true}]
- },
- meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
- shards(DbName, Args),
- meck:validate(mem3),
- meck:unload(mem3).
+ t_shards_for_no_keys_all_shards() ->
+ ?_test(begin
+ DbName = <<"db">>,
+ Args = #mrargs{
+ extra = [{partitioned, true}]
+ },
+ meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
+ shards(DbName, Args),
+ ?assertEqual(1, meck:num_calls(mem3, shards, '_'))
+ end).
- shards_for_non_binary_keys_all_shards_test() ->
- DbName = <<"db">>,
- Args = #mrargs{
- start_key = null,
- end_key = null,
- extra = [{partitioned, true}]
- },
- meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
- shards(DbName, Args),
- meck:validate(mem3),
- meck:unload(mem3).
+ t_shards_for_non_binary_keys_all_shards() ->
+ ?_test(begin
+ DbName = <<"db">>,
+ Args = #mrargs{
+ start_key = null,
+ end_key = null,
+ extra = [{partitioned, true}]
+ },
+ meck:expect(mem3, shards, fun(<<"db">>) -> [] end),
+ shards(DbName, Args),
+ ?assertEqual(1, meck:num_calls(mem3, shards, '_'))
+ end).
-endif.
diff --git a/src/mem3/src/mem3.erl b/src/mem3/src/mem3.erl
index d6d14dd..17a2322 100644
--- a/src/mem3/src/mem3.erl
+++ b/src/mem3/src/mem3.erl
@@ -412,15 +412,27 @@ allowed_nodes_test_() ->
]
}]}.
-is_partitioned_false_shards_db_test() ->
- meck:expect(config, get, fun (_, _, Default) -> Default end),
- ?assertEqual(is_partitioned(<<"_dbs">>), false),
+check_partitions_and_system_dbs_test_() ->
+ {
+ foreach,
+ fun setup/0,
+ fun teardown/1,
+ [
+ t_is_partitioned_false_shards_db()
+ ]
+ }.
+
+setup() ->
+ ok.
+
+teardown(_) ->
meck:unload().
-is_partitioned_false_nodes_db_test() ->
- meck:expect(config, get, fun (_, _, Default) -> Default end),
- ?assertEqual(is_partitioned(<<"_nodes">>), false),
- meck:unload().
+t_is_partitioned_false_shards_db() ->
+ ?_test(begin
+ meck:expect(config, get, fun (_, _, Default) -> Default end),
+ ?assertEqual(is_partitioned(<<"_dbs">>), false)
+ end).
is_partitioned_true_partitioned_db_test() ->
Shard = #shard{