# Copyright 2009-2015 MongoDB, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Some tools for running tests based on MongoDB server version.""" from __future__ import annotations from pymongo.common import Version as BaseVersion class Version(BaseVersion): @classmethod def from_client(cls, client): info = client.server_info() if "versionArray" in info: return cls.from_version_array(info["versionArray"]) return cls.from_string(info["version"]) @classmethod async def async_from_client(cls, client): info = await client.server_info() if "versionArray" in info: return cls.from_version_array(info["versionArray"]) return cls.from_string(info["version"])