From 290d9df3eb6491f22a8feea0f2e9e909bc94b621 Mon Sep 17 00:00:00 2001 From: Nuno Rodrigues Date: Fri, 12 Jul 2019 13:33:19 +0100 Subject: [PATCH] Set default database when using mongomock. When passing host `mongomock://localhost/some-default-database` to `connect` the default database was `"test"` instead of `"some-default-database"`. Fixes: #2130 --- mongoengine/connection.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mongoengine/connection.py b/mongoengine/connection.py index 8aa95daa..01e9a7af 100644 --- a/mongoengine/connection.py +++ b/mongoengine/connection.py @@ -103,7 +103,13 @@ def _get_connection_settings( if entity.startswith("mongomock://"): conn_settings["is_mock"] = True # `mongomock://` is not a valid url prefix and must be replaced by `mongodb://` - resolved_hosts.append(entity.replace("mongomock://", "mongodb://", 1)) + new_entity = entity.replace("mongomock://", "mongodb://", 1) + resolved_hosts.append(new_entity) + + uri_dict = uri_parser.parse_uri(new_entity) + + if uri_dict.get("database"): + conn_settings["name"] = uri_dict.get("database") # Handle URI style connections, only updating connection params which # were explicitly specified in the URI.