Github user kxepal commented on the pull request:
https://github.com/apache/couchdb-chttpd/pull/10#issuecomment-65078078
All cool, but seems your logging is still there. Try this trick:
```
diff --git a/test/chttpd_handler_callback_test.erl
b/test/chttpd_handler_callback_test.erl
index d1f340d..2050106 100644
--- a/test/chttpd_handler_callback_test.erl
+++ b/test/chttpd_handler_callback_test.erl
@@ -31,179 +31,179 @@
-include_lib("eunit/include/eunit.hrl").
+
all_test_() ->
- io:format(user, "~nEndpoint handler callbacks:~n", []),
- {setup,
+ {foreach,
fun() -> chttpd_handler:build(test_cfg()) end,
% url handlers
- [fun test_empty_string/0,
- fun test_favicon/0,
- fun test_utils/0,
- fun test_all_dbs/0,
- fun test_active_tasks/0,
- fun test_config/0,
- fun test_reload_query_servers/0,
- fun test_replicate/0,
- fun test_uuids/0,
- fun test_sleep/0,
- fun test_session/0,
- fun test_oauth/0,
- fun test_up/0,
- fun test_membership/0,
- fun test_db_updates/0,
- fun test_anything/0,
+ [fun test_empty_string/1,
+ fun test_favicon/1,
+ fun test_utils/1,
+ fun test_all_dbs/1,
+ fun test_active_tasks/1,
+ fun test_config/1,
+ fun test_reload_query_servers/1,
+ fun test_replicate/1,
+ fun test_uuids/1,
+ fun test_sleep/1,
+ fun test_session/1,
+ fun test_oauth/1,
+ fun test_up/1,
+ fun test_membership/1,
+ fun test_db_updates/1,
+ fun test_anything/1,
% Test the tests: if the final target function is missing, the call
must
% fail, with any parameter. All parameters are valid.
- fun verify_unmocked_failing_empty_string/0,
- fun verify_unmocked_failing_favicon/0,
- fun verify_unmocked_failing_anything/0,
-
+ fun verify_unmocked_failing_empty_string/1,
+ fun verify_unmocked_failing_favicon/1,
+ fun verify_unmocked_failing_anything/1,
+
% db url handler tests,
- fun test_view_cleanup/0,
- fun test_compact/0,
- fun test_design/0,
- fun test_temp_view/0,
- fun test_changes/0,
- fun test_shards/0,
-
+ fun test_view_cleanup/1,
+ fun test_compact/1,
+ fun test_design/1,
+ fun test_temp_view/1,
+ fun test_changes/1,
+ fun test_shards/1,
+
% Test the test: when the final target function is missing, the Fun
call
% must fail, with any argument, including valid ones.
- fun verify_unmocked_failing_view_cleanup/0,
- fun verify_unmocked_db_failing_something/0,
+ fun verify_unmocked_failing_view_cleanup/1,
+ fun verify_unmocked_db_failing_something/1,
% design url handler tests
- fun test_view/0,
- fun test_show/0,
- fun test_list/0,
- fun test_update/0,
- fun test_info/0,
- fun test_rewrite/0,
+ fun test_view/1,
+ fun test_show/1,
+ fun test_list/1,
+ fun test_update/1,
+ fun test_info/1,
+ fun test_rewrite/1,
% Test the test: when the final target function is missing, the Fun
call
% must fail with any argument, including valid ones.
- fun verify_unmocked_failing_view/0,
- fun verify_unmocked_design_failing_something/0]}.
+ fun verify_unmocked_failing_view/1,
+ fun verify_unmocked_design_failing_something/1]}.
-test_empty_string() ->
- assertReturns("", chttpd_misc, handle_welcome_req).
+test_empty_string(_Cfg) ->
+ ?_test(assertReturns("", chttpd_misc, handle_welcome_req)).
-test_favicon() ->
- assertReturns("favicon.ico", chttpd_misc, handle_favicon_req).
+test_favicon(_Cfg) ->
+ ?_test(assertReturns("favicon.ico", chttpd_misc, handle_favicon_req)).
-test_utils() ->
- assertReturns("_utils", chttpd_misc, handle_utils_dir_req).
+test_utils(_Cfg) ->
+ ?_test(assertReturns("_utils", chttpd_misc, handle_utils_dir_req)).
-test_all_dbs() ->
- assertReturns("_all_dbs", chttpd_misc, handle_all_dbs_req).
+test_all_dbs(_Cfg) ->
+ ?_test(assertReturns("_all_dbs", chttpd_misc, handle_all_dbs_req)).
-test_active_tasks() ->
- assertReturns("_active_tasks", chttpd_misc, handle_task_status_req).
+test_active_tasks(_Cfg) ->
+ ?_test(assertReturns("_active_tasks", chttpd_misc,
handle_task_status_req)).
-test_config() ->
- assertReturns("_config", chttpd_misc, handle_config_req).
+test_config(_Cfg) ->
+ ?_test(assertReturns("_config", chttpd_misc, handle_config_req)).
-test_reload_query_servers() ->
- assertReturns("_reload_query_servers", chttpd_misc,
- handle_reload_query_servers_req).
+test_reload_query_servers(_Cfg) ->
+ ?_test(assertReturns("_reload_query_servers", chttpd_misc,
+ handle_reload_query_servers_req)).
-test_replicate() ->
- assertReturns("_replicate", chttpd_misc, handle_replicate_req).
+test_replicate(_Cfg) ->
+ ?_test(assertReturns("_replicate", chttpd_misc, handle_replicate_req)).
-test_uuids() ->
- assertReturns("_uuids", chttpd_misc, handle_uuids_req).
+test_uuids(_Cfg) ->
+ ?_test(assertReturns("_uuids", chttpd_misc, handle_uuids_req)).
-test_sleep() ->
- assertReturns("_sleep", chttpd_misc, handle_sleep_req).
+test_sleep(_Cfg) ->
+ ?_test(assertReturns("_sleep", chttpd_misc, handle_sleep_req)).
-test_session() ->
- assertReturns("_session", chttpd_auth, handle_session_req).
+test_session(_Cfg) ->
+ ?_test(assertReturns("_session", chttpd_auth, handle_session_req)).
-test_oauth() ->
- assertReturns("_oauth", couch_httpd_oauth, handle_oauth_req).
+test_oauth(_Cfg) ->
+ ?_test(assertReturns("_oauth", couch_httpd_oauth, handle_oauth_req)).
-test_up() ->
- assertReturns("_up", chttpd_misc, handle_up_req).
+test_up(_Cfg) ->
+ ?_test(assertReturns("_up", chttpd_misc, handle_up_req)).
-test_membership() ->
- assertReturns("_membership", mem3_httpd, handle_membership_req).
+test_membership(_Cfg) ->
+ ?_test(assertReturns("_membership", mem3_httpd,
handle_membership_req)).
-test_db_updates() ->
- assertReturns("_db_updates", global_changes_httpd,
- handle_global_changes_req).
+test_db_updates(_Cfg) ->
+ ?_test(assertReturns("_db_updates", global_changes_httpd,
+ handle_global_changes_req)).
-test_anything() ->
- assertReturns("anything", chttpd_db, handle_request).
+test_anything(_Cfg) ->
+ ?_test(assertReturns("anything", chttpd_db, handle_request)).
-verify_unmocked_failing_empty_string() ->
- assertUnmockedFails("", chttpd_misc).
+verify_unmocked_failing_empty_string(_Cfg) ->
+ ?_test(assertUnmockedFails("", chttpd_misc)).
-verify_unmocked_failing_favicon() ->
- assertUnmockedFails("favicon.ico", chttpd_misc).
+verify_unmocked_failing_favicon(_Cfg) ->
+ ?_test(assertUnmockedFails("favicon.ico", chttpd_misc)).
-verify_unmocked_failing_anything() ->
- assertUnmockedFails(anything, chttpd_db).
+verify_unmocked_failing_anything(_Cfg) ->
+ ?_test(assertUnmockedFails(anything, chttpd_db)).
-test_view_cleanup() ->
- assertReturns(db_url_handlers, <<"_view_cleanup">>, chttpd_db,
- handle_view_cleanup_req, 2).
+test_view_cleanup(_Cfg) ->
+ ?_test(assertReturns(db_url_handlers, <<"_view_cleanup">>, chttpd_db,
+ handle_view_cleanup_req, 2)).
-test_compact() ->
- assertReturns(db_url_handlers, <<"_compact">>, chttpd_db,
- handle_compact_req, 2).
+test_compact(_Cfg) ->
+ ?_test(assertReturns(db_url_handlers, <<"_compact">>, chttpd_db,
+ handle_compact_req, 2)).
-test_design() ->
- assertReturns(db_url_handlers, <<"_design">>, chttpd_db,
- handle_design_req, 2).
+test_design(_Cfg) ->
+ ?_test(assertReturns(db_url_handlers, <<"_design">>, chttpd_db,
+ handle_design_req, 2)).
-test_temp_view() ->
- assertReturns(db_url_handlers, <<"_temp_view">>, chttpd_view,
- handle_temp_view_req, 2).
+test_temp_view(_Cfg) ->
+ ?_test(assertReturns(db_url_handlers, <<"_temp_view">>, chttpd_view,
+ handle_temp_view_req, 2)).
-test_changes() ->
- assertReturns(db_url_handlers, <<"_changes">>, chttpd_db,
- handle_changes_req, 2).
+test_changes(_Cfg) ->
+ ?_test(assertReturns(db_url_handlers, <<"_changes">>, chttpd_db,
+ handle_changes_req, 2)).
-test_shards() ->
- assertReturns(db_url_handlers, <<"_shards">>, mem3_httpd,
- handle_shards_req, 2).
+test_shards(_Cfg) ->
+ ?_test(assertReturns(db_url_handlers, <<"_shards">>, mem3_httpd,
+ handle_shards_req, 2)).
-verify_unmocked_failing_view_cleanup() ->
- assertUnmockedFails(db_url_handlers, <<"_view_cleanup">>, chttpd_db,
2).
+verify_unmocked_failing_view_cleanup(_Cfg) ->
+ ?_test(assertUnmockedFails(db_url_handlers, <<"_view_cleanup">>,
chttpd_db, 2)).
-verify_unmocked_db_failing_something() ->
- assertUnknownFails(db_url_handlers, <<"_something">>).
+verify_unmocked_db_failing_something(_Cfg) ->
+ ?_test(assertUnknownFails(db_url_handlers, <<"_something">>)).
-test_view() ->
- assertReturns(design_url_handlers, <<"_view">>, chttpd_view,
- handle_view_req, 3).
+test_view(_Cfg) ->
+ ?_test(assertReturns(design_url_handlers, <<"_view">>, chttpd_view,
+ handle_view_req, 3)).
-test_show() ->
- assertReturns(design_url_handlers, <<"_show">>, chttpd_show,
- handle_doc_show_req, 3).
+test_show(_Cfg) ->
+ ?_test(assertReturns(design_url_handlers, <<"_show">>, chttpd_show,
+ handle_doc_show_req, 3)).
-test_list() ->
- assertReturns(design_url_handlers, <<"_list">>, chttpd_show,
- handle_view_list_req, 3).
+test_list(_Cfg) ->
+ ?_test(assertReturns(design_url_handlers, <<"_list">>, chttpd_show,
+ handle_view_list_req, 3)).
-test_update() ->
- assertReturns(design_url_handlers, <<"_update">>, chttpd_show,
- handle_doc_update_req, 3).
+test_update(_Cfg) ->
+ ?_test(assertReturns(design_url_handlers, <<"_update">>, chttpd_show,
+ handle_doc_update_req, 3)).
-test_info() ->
- assertReturns(design_url_handlers, <<"_info">>, chttpd_db,
- handle_design_info_req, 3).
+test_info(_Cfg) ->
+ ?_test(assertReturns(design_url_handlers, <<"_info">>, chttpd_db,
+ handle_design_info_req, 3)).
-test_rewrite() ->
- assertReturns(design_url_handlers, <<"_rewrite">>, chttpd_rewrite,
- handle_rewrite_req, 3).
+test_rewrite(_Cfg) ->
+ ?_test(assertReturns(design_url_handlers, <<"_rewrite">>,
chttpd_rewrite,
+ handle_rewrite_req, 3)).
-verify_unmocked_failing_view() ->
- assertUnmockedFails(design_url_handlers, <<"_view">>, chttpd_view, 3).
+verify_unmocked_failing_view(_Cfg) ->
+ ?_test(assertUnmockedFails(design_url_handlers, <<"_view">>,
chttpd_view, 3)).
-verify_unmocked_design_failing_something() ->
- assertUnknownFails(design_url_handlers, <<"_something">>).
+verify_unmocked_design_failing_something(_Cfg) ->
+ ?_test(assertUnknownFails(design_url_handlers, <<"_something">>)).
%% Call the dynamic function with a parameter known to trigger a specific
@@ -212,10 +212,9 @@ verify_unmocked_design_failing_something() ->
assertReturns(Endpoint, M, F) ->
meck:new(M, [passthrough, non_strict]),
try
- io:format(user, "~-47...s ", [Endpoint]),
meck:expect(M, F, fun(X) -> {return, Endpoint, X} end),
Fun = chttpd_handler:url_handler(Endpoint),
- ?_assertEqual({return, Endpoint, x}, Fun(x))
+ ?assertEqual({return, Endpoint, x}, Fun(x))
after
meck:unload(M)
end.
@@ -225,7 +224,7 @@ assertUnmockedFails(Endpoint, M) ->
meck:new(M, [non_strict]),
try
Fun = chttpd_handler:url_handler(Endpoint),
- ?_assertError(undef, Fun(x))
+ ?assertError(undef, Fun(x))
after
meck:unload(M)
end.
@@ -234,7 +233,6 @@ assertUnmockedFails(Endpoint, M) ->
assertReturns(HandlerLister, Endpoint, M, F, Arity) ->
meck:new(M, [passthrough, non_strict]),
try
- io:format(user, "~-47...s ", [Endpoint]),
case Arity of
2 ->
meck:expect(M, F, fun(X, Y) -> {return, Endpoint, X, Y} end),
@@ -243,7 +241,7 @@ assertReturns(HandlerLister, Endpoint, M, F, Arity) ->
3 ->
meck:expect(M, F, fun(X, Y, Z) -> {return, Endpoint, X, Y, Z}
end),
{_, Fun} = lists:keyfind(Endpoint, 1,
chttpd_handler:HandlerLister()),
- ?_assertEqual({return, Endpoint, x, y, z}, Fun(x, y, z))
+ ?assertEqual({return, Endpoint, x, y, z}, Fun(x, y, z))
end
after
meck:unload(M)
@@ -255,8 +253,8 @@ assertUnmockedFails(HandlerLister, Endpoint, M, Arity)
->
try
{_, Fun} = lists:keyfind(Endpoint, 1,
chttpd_handler:HandlerLister()),
case Arity of
- 2 -> ?_assertError(undef, Fun(x, y));
- 3 -> ?_assertError(undef, Fun(x, y, z))
+ 2 -> ?assertError(undef, Fun(x, y));
+ 3 -> ?assertError(undef, Fun(x, y, z))
end
after
meck:unload(M)
@@ -264,7 +262,7 @@ assertUnmockedFails(HandlerLister, Endpoint, M, Arity)
->
%% Make sure that a wrong parameter also really fails.
assertUnknownFails(HandlerLister, Endpoint) ->
- false = lists:keyfind(Endpoint, 1, chttpd_handler:HandlerLister()).
+ ?assertEqual(false, lists:keyfind(Endpoint, 1,
chttpd_handler:HandlerLister())).
test_cfg() ->
[{url_handler, clauses, [
```
And compare the output yours:
```
module 'chttpd_handler_callback_test'
chttpd_handler_callback_test:
all_test_.................................................. [0.142 s] ok
chttpd_handler_callback_test:
all_test_...favicon.ico.................................... [0.075 s] ok
chttpd_handler_callback_test:
all_test_..._utils......................................... [0.068 s] ok
chttpd_handler_callback_test:
all_test_..._all_dbs....................................... [0.069 s] ok
chttpd_handler_callback_test:
all_test_..._active_tasks.................................. [0.071 s] ok
chttpd_handler_callback_test:
all_test_..._config........................................ [0.070 s] ok
chttpd_handler_callback_test:
all_test_..._reload_query_servers.......................... [0.069 s] ok
chttpd_handler_callback_test:
all_test_..._replicate..................................... [0.068 s] ok
chttpd_handler_callback_test:
all_test_..._uuids......................................... [0.079 s] ok
chttpd_handler_callback_test:
all_test_..._sleep......................................... [0.092 s] ok
chttpd_handler_callback_test:
all_test_..._session....................................... [0.007 s] ok
chttpd_handler_callback_test:
all_test_..._oauth......................................... [0.075 s] ok
chttpd_handler_callback_test:
all_test_..._up............................................ [0.069 s] ok
chttpd_handler_callback_test:
all_test_..._membership.................................... [0.030 s] ok
chttpd_handler_callback_test:
all_test_..._db_updates.................................... [0.042 s] ok
chttpd_handler_callback_test:
all_test_...anything....................................... [0.284 s] ok
chttpd_handler_callback_test: all_test_...[0.061 s] ok
chttpd_handler_callback_test: all_test_...[0.064 s] ok
chttpd_handler_callback_test: all_test_...[0.290 s] ok
chttpd_handler_callback_test:
all_test_..._view_cleanup.................................. [0.364 s] ok
chttpd_handler_callback_test:
all_test_..._compact....................................... [0.322 s] ok
chttpd_handler_callback_test:
all_test_..._design........................................ [0.320 s] ok
chttpd_handler_callback_test:
all_test_..._temp_view..................................... [0.026 s] ok
chttpd_handler_callback_test:
all_test_..._changes....................................... [0.296 s] ok
chttpd_handler_callback_test:
all_test_..._shards........................................ [0.020 s] ok
chttpd_handler_callback_test: all_test_...[0.323 s] ok
chttpd_handler_callback_test: all_test_...ok
chttpd_handler_callback_test:
all_test_..._view.......................................... [0.029 s] ok
chttpd_handler_callback_test:
all_test_..._show.......................................... [0.080 s] ok
chttpd_handler_callback_test:
all_test_..._list.......................................... [0.054 s] ok
chttpd_handler_callback_test:
all_test_..._update........................................ [0.052 s] ok
chttpd_handler_callback_test:
all_test_..._info.......................................... [0.351 s] ok
chttpd_handler_callback_test:
all_test_..._rewrite....................................... [0.062 s] ok
chttpd_handler_callback_test: all_test_...[0.031 s] ok
chttpd_handler_callback_test: all_test_...ok
```
And now:
```
module 'chttpd_handler_callback_test'
chttpd_handler_callback_test:90: test_empty_string...[0.087 s] ok
chttpd_handler_callback_test:93: test_favicon...[0.076 s] ok
chttpd_handler_callback_test:96: test_utils...[0.076 s] ok
chttpd_handler_callback_test:99: test_all_dbs...[0.075 s] ok
chttpd_handler_callback_test:102: test_active_tasks...[0.077 s] ok
chttpd_handler_callback_test:105: test_config...[0.076 s] ok
chttpd_handler_callback_test:108: test_reload_query_servers...[0.077 s] ok
chttpd_handler_callback_test:112: test_replicate...[0.075 s] ok
chttpd_handler_callback_test:115: test_uuids...[0.076 s] ok
chttpd_handler_callback_test:118: test_sleep...[0.099 s] ok
chttpd_handler_callback_test:121: test_session...[0.007 s] ok
chttpd_handler_callback_test:124: test_oauth...[0.054 s] ok
chttpd_handler_callback_test:127: test_up...[0.076 s] ok
chttpd_handler_callback_test:130: test_membership...[0.018 s] ok
chttpd_handler_callback_test:133: test_db_updates...[0.045 s] ok
chttpd_handler_callback_test:137: test_anything...[0.369 s] ok
chttpd_handler_callback_test:140:
verify_unmocked_failing_empty_string...[0.066 s] ok
chttpd_handler_callback_test:143:
verify_unmocked_failing_favicon...[0.065 s] ok
chttpd_handler_callback_test:146:
verify_unmocked_failing_anything...[0.362 s] ok
chttpd_handler_callback_test:149: test_view_cleanup...[0.367 s] ok
chttpd_handler_callback_test:153: test_compact...[0.372 s] ok
chttpd_handler_callback_test:157: test_design...[0.370 s] ok
chttpd_handler_callback_test:161: test_temp_view...[0.031 s] ok
chttpd_handler_callback_test:165: test_changes...[0.406 s] ok
chttpd_handler_callback_test:169: test_shards...[0.020 s] ok
chttpd_handler_callback_test:173:
verify_unmocked_failing_view_cleanup...[0.390 s] ok
chttpd_handler_callback_test:176:
verify_unmocked_db_failing_something...ok
chttpd_handler_callback_test:179: test_view...[0.033 s] ok
chttpd_handler_callback_test:183: test_show...[0.051 s] ok
chttpd_handler_callback_test:187: test_list...[0.052 s] ok
chttpd_handler_callback_test:191: test_update...[0.054 s] ok
chttpd_handler_callback_test:195: test_info...[0.393 s] ok
chttpd_handler_callback_test:199: test_rewrite...[0.060 s] ok
chttpd_handler_callback_test:203: verify_unmocked_failing_view...[0.026
s] ok
chttpd_handler_callback_test:206:
verify_unmocked_design_failing_something...ok
```
Looks better right? I'd forgot a bit how to make eunit produce the right
output: it doesn't works right if setup receives list of functions, so I
eventually have to rollback ecd4f77 - sorry for the false tip. Now you see
which function got executed and you'll easily know which one fails.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---