Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ Changelog
Development
===========
- (Fill this out as you fix issues and develop your features).
- BREAKING CHANGE: Renamed `MongoEngineConnectionError` to `ConnectionFailure` #2111
- If you catch/use `MongoEngineConnectionError` in your code, you'll have to rename it.
- BREAKING CHANGE: Positional arguments when instantiating a document are no longer supported. #2103
- From now on keyword arguments (e.g. `Doc(field_name=value)`) are required.
- The codebase is now formatted using `black`. #2109
Expand Down
16 changes: 7 additions & 9 deletions mongoengine/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
__all__ = [
"DEFAULT_CONNECTION_NAME",
"DEFAULT_DATABASE_NAME",
"MongoEngineConnectionError",
"ConnectionFailure",
"connect",
"disconnect",
"disconnect_all",
Expand All @@ -27,7 +27,7 @@
READ_PREFERENCE = ReadPreference.PRIMARY


class MongoEngineConnectionError(Exception):
class ConnectionFailure(Exception):
"""Error raised when the database connection can't be established or
when a connection with a requested alias can't be retrieved.
"""
Expand Down Expand Up @@ -252,13 +252,13 @@ def get_connection(alias=DEFAULT_CONNECTION_NAME, reconnect=False):
return _connections[alias]

# Validate that the requested alias exists in the _connection_settings.
# Raise MongoEngineConnectionError if it doesn't.
# Raise ConnectionFailure if it doesn't.
if alias not in _connection_settings:
if alias == DEFAULT_CONNECTION_NAME:
msg = "You have not defined a default connection"
else:
msg = 'Connection with alias "%s" has not been defined' % alias
raise MongoEngineConnectionError(msg)
raise ConnectionFailure(msg)

def _clean_settings(settings_dict):
irrelevant_fields_set = {
Expand Down Expand Up @@ -305,14 +305,12 @@ def _clean_settings(settings_dict):
def _create_connection(alias, connection_class, **connection_settings):
"""
Create the new connection for this alias. Raise
MongoEngineConnectionError if it can't be established.
ConnectionFailure if it can't be established.
"""
try:
return connection_class(**connection_settings)
except Exception as e:
raise MongoEngineConnectionError(
"Cannot connect to database %s :\n%s" % (alias, e)
)
raise ConnectionFailure("Cannot connect to database %s :\n%s" % (alias, e))


def _find_existing_connection(connection_settings):
Expand Down Expand Up @@ -393,7 +391,7 @@ def connect(db=None, alias=DEFAULT_CONNECTION_NAME, **kwargs):
u"A different connection with alias `{}` was already "
u"registered. Use disconnect() first"
).format(alias)
raise MongoEngineConnectionError(err_msg)
raise ConnectionFailure(err_msg)
else:
register_connection(alias, db, **kwargs)

Expand Down
22 changes: 11 additions & 11 deletions tests/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
)
import mongoengine.connection
from mongoengine.connection import (
MongoEngineConnectionError,
ConnectionFailure,
get_db,
get_connection,
disconnect,
Expand Down Expand Up @@ -92,10 +92,10 @@ class History2(Document):
disconnect("db1")
disconnect("db2")

with self.assertRaises(MongoEngineConnectionError):
with self.assertRaises(ConnectionFailure):
list(History1.objects().as_pymongo())

with self.assertRaises(MongoEngineConnectionError):
with self.assertRaises(ConnectionFailure):
list(History2.objects().as_pymongo())

connect("db1", alias="db1")
Expand Down Expand Up @@ -149,7 +149,7 @@ class History2(Document):
def test_connect_fails_if_connect_2_times_with_default_alias(self):
connect("mongoenginetest")

with self.assertRaises(MongoEngineConnectionError) as ctx_err:
with self.assertRaises(ConnectionFailure) as ctx_err:
connect("mongoenginetest2")
self.assertEqual(
"A different connection with alias `default` was already registered. Use disconnect() first",
Expand All @@ -159,7 +159,7 @@ def test_connect_fails_if_connect_2_times_with_default_alias(self):
def test_connect_fails_if_connect_2_times_with_custom_alias(self):
connect("mongoenginetest", alias="alias1")

with self.assertRaises(MongoEngineConnectionError) as ctx_err:
with self.assertRaises(ConnectionFailure) as ctx_err:
connect("mongoenginetest2", alias="alias1")

self.assertEqual(
Expand All @@ -175,7 +175,7 @@ def test_connect_fails_if_similar_connection_settings_arent_defined_the_same_way
db_alias = "alias1"
connect(db=db_name, alias=db_alias, host="localhost", port=27017)

with self.assertRaises(MongoEngineConnectionError):
with self.assertRaises(ConnectionFailure):
connect(host="mongodb://localhost:27017/%s" % db_name, alias=db_alias)

def test_connect_passes_silently_connect_multiple_times_with_same_config(self):
Expand Down Expand Up @@ -353,7 +353,7 @@ class History(Document):

self.assertIsNone(History._collection)

with self.assertRaises(MongoEngineConnectionError) as ctx_err:
with self.assertRaises(ConnectionFailure) as ctx_err:
History.objects.first()
self.assertEqual(
"You have not defined a default connection", str(ctx_err.exception)
Expand All @@ -379,7 +379,7 @@ class User(Document):
disconnect()

# Make sure save doesnt work at this stage
with self.assertRaises(MongoEngineConnectionError):
with self.assertRaises(ConnectionFailure):
User(name="Wont work").save()

# Save in db2
Expand Down Expand Up @@ -433,10 +433,10 @@ class History1(Document):
self.assertEqual(len(dbs), 0)
self.assertEqual(len(connection_settings), 0)

with self.assertRaises(MongoEngineConnectionError):
with self.assertRaises(ConnectionFailure):
History.objects.first()

with self.assertRaises(MongoEngineConnectionError):
with self.assertRaises(ConnectionFailure):
History1.objects.first()

def test_disconnect_all_silently_pass_if_no_connection_exist(self):
Expand Down Expand Up @@ -557,7 +557,7 @@ def test_register_connection(self):
"""
register_connection("testdb", "mongoenginetest2")

self.assertRaises(MongoEngineConnectionError, get_connection)
self.assertRaises(ConnectionFailure, get_connection)
conn = get_connection("testdb")
self.assertIsInstance(conn, pymongo.mongo_client.MongoClient)

Expand Down
4 changes: 2 additions & 2 deletions tests/test_replicaset_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pymongo import MongoClient

import mongoengine
from mongoengine.connection import MongoEngineConnectionError
from mongoengine.connection import ConnectionFailure


CONN_CLASS = MongoClient
Expand Down Expand Up @@ -32,7 +32,7 @@ def test_replicaset_uri_passes_read_preference(self):
host="mongodb://localhost/mongoenginetest?replicaSet=rs",
read_preference=READ_PREF,
)
except MongoEngineConnectionError as e:
except ConnectionFailure as e:
return

if not isinstance(conn, CONN_CLASS):
Expand Down