You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2022/08/19 01:52:40 UTC

[couchdb] 05/18: Update couch_replicator_create_target_with_options_tests

This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a commit to branch refactor-replication-tests
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit b15409c1f0fda06855d8eb034fd9c2079719f55f
Author: Nick Vatamaniuc <va...@gmail.com>
AuthorDate: Thu Aug 18 21:15:02 2022 -0400

    Update couch_replicator_create_target_with_options_tests
    
    Start using the common setup and tear down functions from the test helper.
    
    Also using the test definitions to use the TDEF_FE macro.
    
    Since the setup function already creates a target endpoint database and the
    test is also in charge of creating test database, we just remove the target db
    before the replication jobs start.
---
 ...replicator_create_target_with_options_tests.erl | 74 +++++-----------------
 1 file changed, 17 insertions(+), 57 deletions(-)

diff --git a/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl
index 8adcd25bd..fabb6480e 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl
@@ -14,35 +14,20 @@
 
 -include_lib("couch/include/couch_eunit.hrl").
 -include_lib("couch/include/couch_db.hrl").
--include_lib("couch_replicator/src/couch_replicator.hrl").
-
--define(USERNAME, "rep_admin").
--define(PASSWORD, "secret").
-
-setup() ->
-    Ctx = test_util:start_couch([fabric, mem3, couch_replicator, chttpd]),
-    Hashed = couch_passwords:hash_admin_password(?PASSWORD),
-    ok = config:set("admins", ?USERNAME, ?b2l(Hashed), _Persist = false),
-    Source = ?tempdb(),
-    Target = ?tempdb(),
-    {Ctx, {Source, Target}}.
-
-teardown({Ctx, {_Source, _Target}}) ->
-    config:delete("admins", ?USERNAME),
-    ok = test_util:stop_couch(Ctx).
+-include("couch_replicator_test.hrl").
 
 create_target_with_options_replication_test_() ->
     {
         "Create target with range partitions tests",
         {
             foreach,
-            fun setup/0,
-            fun teardown/1,
+            fun couch_replicator_test_helper:test_setup/0,
+            fun couch_replicator_test_helper:test_teardown/1,
             [
-                fun should_create_target_with_q_4/1,
-                fun should_create_target_with_q_2_n_1/1,
-                fun should_create_target_with_default/1,
-                fun should_not_create_target_with_q_any/1
+                ?TDEF_FE(should_create_target_with_q_4),
+                ?TDEF_FE(should_create_target_with_q_2_n_1),
+                ?TDEF_FE(should_create_target_with_default),
+                ?TDEF_FE(should_not_create_target_with_q_any)
             ]
         }
     }.
@@ -55,15 +40,12 @@ should_create_target_with_q_4({_Ctx, {Source, Target}}) ->
             {<<"create_target">>, true},
             {<<"create_target_params">>, {[{<<"q">>, <<"4">>}]}}
         ]},
-    create_db(Source),
     create_doc(Source),
+    delete_db(Target),
     {ok, _} = couch_replicator:replicate(RepObject, ?ADMIN_USER),
-
     {ok, TargetInfo} = fabric:get_db_info(Target),
     {ClusterInfo} = couch_util:get_value(cluster, TargetInfo),
-    delete_db(Source),
-    delete_db(Target),
-    ?_assertEqual(4, couch_util:get_value(q, ClusterInfo)).
+    ?assertEqual(4, couch_util:get_value(q, ClusterInfo)).
 
 should_create_target_with_q_2_n_1({_Ctx, {Source, Target}}) ->
     RepObject =
@@ -73,18 +55,13 @@ should_create_target_with_q_2_n_1({_Ctx, {Source, Target}}) ->
             {<<"create_target">>, true},
             {<<"create_target_params">>, {[{<<"q">>, <<"2">>}, {<<"n">>, <<"1">>}]}}
         ]},
-    create_db(Source),
     create_doc(Source),
+    delete_db(Target),
     {ok, _} = couch_replicator:replicate(RepObject, ?ADMIN_USER),
-
     {ok, TargetInfo} = fabric:get_db_info(Target),
     {ClusterInfo} = couch_util:get_value(cluster, TargetInfo),
-    delete_db(Source),
-    delete_db(Target),
-    [
-        ?_assertEqual(2, couch_util:get_value(q, ClusterInfo)),
-        ?_assertEqual(1, couch_util:get_value(n, ClusterInfo))
-    ].
+    ?assertEqual(2, couch_util:get_value(q, ClusterInfo)),
+    ?assertEqual(1, couch_util:get_value(n, ClusterInfo)).
 
 should_create_target_with_default({_Ctx, {Source, Target}}) ->
     RepObject =
@@ -93,16 +70,13 @@ should_create_target_with_default({_Ctx, {Source, Target}}) ->
             {<<"target">>, db_url(Target)},
             {<<"create_target">>, true}
         ]},
-    create_db(Source),
     create_doc(Source),
+    delete_db(Target),
     {ok, _} = couch_replicator:replicate(RepObject, ?ADMIN_USER),
-
     {ok, TargetInfo} = fabric:get_db_info(Target),
     {ClusterInfo} = couch_util:get_value(cluster, TargetInfo),
     Q = config:get_integer("cluster", "q", 2),
-    delete_db(Source),
-    delete_db(Target),
-    ?_assertEqual(Q, couch_util:get_value(q, ClusterInfo)).
+    ?assertEqual(Q, couch_util:get_value(q, ClusterInfo)).
 
 should_not_create_target_with_q_any({_Ctx, {Source, Target}}) ->
     RepObject =
@@ -112,33 +86,19 @@ should_not_create_target_with_q_any({_Ctx, {Source, Target}}) ->
             {<<"create_target">>, false},
             {<<"create_target_params">>, {[{<<"q">>, <<"1">>}]}}
         ]},
-    create_db(Source),
     create_doc(Source),
+    delete_db(Target),
     {error, _} = couch_replicator:replicate(RepObject, ?ADMIN_USER),
     DbExist = is_list(catch mem3:shards(Target)),
-    delete_db(Source),
-    ?_assertEqual(false, DbExist).
+    ?assertEqual(false, DbExist).
 
 create_doc(DbName) ->
     Body = {[{<<"foo">>, <<"bar">>}]},
     NewDoc = #doc{body = Body},
     {ok, _} = fabric:update_doc(DbName, NewDoc, [?ADMIN_CTX]).
 
-create_db(DbName) ->
-    ok = fabric:create_db(DbName, [?ADMIN_CTX]).
-
 delete_db(DbName) ->
     ok = fabric:delete_db(DbName, [?ADMIN_CTX]).
 
 db_url(DbName) ->
-    Addr = config:get("chttpd", "bind_address", "127.0.0.1"),
-    Port = mochiweb_socket_server:get(chttpd, port),
-    ?l2b(
-        io_lib:format("http://~s:~s@~s:~b/~s", [
-            ?USERNAME,
-            ?PASSWORD,
-            Addr,
-            Port,
-            DbName
-        ])
-    ).
+    couch_replicator_test_helper:cluster_db_url(DbName).