diff options
author | Johan Lundberg <lundberg@sunet.se> | 2022-11-24 11:49:04 +0100 |
---|---|---|
committer | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2022-11-29 13:55:40 +0200 |
commit | a9801bb49f8e7e0eb82f344d2cc261fdb04cc55f (patch) | |
tree | b24702a192556ef6c461ff22968933f70cd7d87a | |
parent | 0fb127f95648242c964349d1b401922063997d7e (diff) | |
download | pysaml2-a9801bb49f8e7e0eb82f344d2cc261fdb04cc55f.tar.gz |
make mongodb code run with more recent pymongo
these changes should be compatible with pymongo >=3.5
-rw-r--r-- | pyproject.toml | 2 | ||||
-rw-r--r-- | src/saml2/mongo_store.py | 13 |
2 files changed, 4 insertions, 11 deletions
diff --git a/pyproject.toml b/pyproject.toml index 92c0b66f..c6aab9ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,7 +72,7 @@ optional = true [tool.poetry.group.test.dependencies] pyasn1 = "*" -pymongo = "^3" +pymongo = ">=3.5" pytest = ">=6.0" responses = "*" diff --git a/src/saml2/mongo_store.py b/src/saml2/mongo_store.py index f2fc0a6e..4c0599e9 100644 --- a/src/saml2/mongo_store.py +++ b/src/saml2/mongo_store.py @@ -4,7 +4,6 @@ import logging from pymongo import MongoClient import pymongo.errors -from pymongo.mongo_replica_set_client import MongoReplicaSetClient import pymongo.uri_parser from saml2.eptid import Eptid @@ -222,12 +221,12 @@ class MDB: if key is None: if kwargs: for item in self.db.find(kwargs): - self.db.remove(item["_id"]) + self.db.delete_one(item["_id"]) else: doc = {self.primary_key: key} doc.update(kwargs) for item in self.db.find(doc): - self.db.remove(item["_id"]) + self.db.delete_one(item["_id"]) def keys(self): for item in self.db.find(): @@ -271,25 +270,19 @@ def _mdb_get_database(uri, **kwargs): kwargs["tz_aware"] = True connection_factory = MongoClient - _parsed_uri = {} try: _parsed_uri = pymongo.uri_parser.parse_uri(uri) except pymongo.errors.InvalidURI: # assume URI to be just the database name db_name = uri - _conn = MongoClient() + _conn = connection_factory() else: - if "replicaset" in _parsed_uri["options"]: - connection_factory = MongoReplicaSetClient db_name = _parsed_uri.get("database", "pysaml2") _conn = connection_factory(uri, **kwargs) _db = _conn[db_name] - if "username" in _parsed_uri: - _db.authenticate(_parsed_uri.get("username", None), _parsed_uri.get("password", None)) - return _db |