# # # add_dir "tests/database_aliases" # # add_file "tests/database_aliases/__driver__.lua" # content [c2f9c716532ca8534c097796adbcf0f952f74cfc] # # add_file "tests/database_aliases/rcfile.lua" # content [4f1bd27bb909cb5f7ff39a5d77e349e1ab370a4a] # ============================================================ --- tests/database_aliases/__driver__.lua c2f9c716532ca8534c097796adbcf0f952f74cfc +++ tests/database_aliases/__driver__.lua c2f9c716532ca8534c097796adbcf0f952f74cfc @@ -0,0 +1,35 @@ + +check(get("rcfile.lua")) + +mtn_setup() + +function mt(...) + return nodb_mtn("--rcfile", "rcfile.lua", ...) +end + +-- at first some fun with invalid database aliases +check(mt("ls", "branches", "-d", ":not-existing.mtn"), 1, false, true) +check(qgrep("managed_databases/not-existing.mtn.+does.+not.+exist", "stderr")) + +check(mt("ls", "branches", "-d", ":"), 1, false, true) +check(qgrep("invalid database alias ':': must not be empty", "stderr")) + +check(mt("ls", "branches", "-d", ":/foo.mtn"), 1, false, true) +check(qgrep("invalid database alias ':/foo.mtn': does contain invalid characters", "stderr")) + +-- check that this invalidness is also checked for values from the hook +check(mt("setup", "-b", "foo", "foo"), 1, false, true) +check(qgrep("invalid database alias 'invalid': does not start with a colon", "stderr")) + +-- now check if we get prompted to resolve a ambiguous alias +mkdir("managed_databases") +mkdir("other_managed_databases") + +check(nodb_mtn("db", "init", "-d", "managed_databases/foo.mtn"), 0, false, false) +check(nodb_mtn("db", "init", "-d", "other_managed_databases/foo.mtn"), 0, false, false) + +check(mt("ls", "branches", "-d", ":foo.mtn"), 1, false, true) +check(qgrep("the database alias ':foo.mtn' has multiple ambiguous expansions", "stderr")) +check(qgrep("managed_databases/foo.mtn", "stderr")) +check(qgrep("other_managed_databases/foo.mtn", "stderr")) + ============================================================ --- tests/database_aliases/rcfile.lua 4f1bd27bb909cb5f7ff39a5d77e349e1ab370a4a +++ tests/database_aliases/rcfile.lua 4f1bd27bb909cb5f7ff39a5d77e349e1ab370a4a @@ -0,0 +1,8 @@ +function get_default_database_locations() + return { "managed_databases" , "other_managed_databases" } +end + +function get_default_database_alias() + return "invalid" +end +