diff --git a/irods/helpers/__init__.py b/irods/helpers/__init__.py index 93823a110..8eb432cb1 100644 --- a/irods/helpers/__init__.py +++ b/irods/helpers/__init__.py @@ -3,7 +3,7 @@ import sys from irods import env_filename_from_keyword_args import irods.exception as ex -from irods.message import ET, XML_Parser_Type, IRODS_VERSION +from irods.message import ET, XML_Parser_Type, _IRODS_VERSION from irods.path import iRODSPath from irods.session import iRODSSession @@ -54,9 +54,12 @@ def make_session(test_server_version=False, **kwargs): env_file = env_filename_from_keyword_args(kwargs) session = iRODSSession(irods_env_file=env_file, **kwargs) + # irods.test.helpers version of this function sets test_server_version True by default, so + # that sessions generated for the test methods will abort on connecting with a server that + # is too recent. This is a way to ensure that tests don't fail due to a server mismatch. if test_server_version: connected_version = _get_server_version_for_test(session, curtail_length=3) - advertised_version = IRODS_VERSION[:3] + advertised_version = _IRODS_VERSION[:3] if connected_version > advertised_version: msg = ( "Connected server is {connected_version}, " diff --git a/irods/message/__init__.py b/irods/message/__init__.py index 9b8e0ec80..b8d63798c 100644 --- a/irods/message/__init__.py +++ b/irods/message/__init__.py @@ -181,7 +181,15 @@ def ET(xml_type=(), server_version=None): logger = logging.getLogger(__name__) -IRODS_VERSION = (5, 0, 2, "d") +# Advertised server version compatibility. More recent servers are not guaranteed to work. +# We avail ourselves of this macro in running tests to abort if the session has connected +# to a server that is too new. + +_IRODS_VERSION = (5, 0, 2, "d") + +# This alias exists as a backward-compatible duplicate, but it is slated for deprecation. +# The symbol is for internal use in testing only, so it should be prefixed with an underline. +IRODS_VERSION = _IRODS_VERSION UNICODE = str @@ -473,8 +481,8 @@ def __init__(self, proxy_user, client_user, application_name=""): self.connectCnt = 0 self.proxyUser, self.proxyRcatZone = proxy_user self.clientUser, self.clientRcatZone = client_user - self.relVersion = "rods{}.{}.{}".format(*IRODS_VERSION) - self.apiVersion = "{3}".format(*IRODS_VERSION) + self.relVersion = "rods{}.{}.{}".format(*_IRODS_VERSION) + self.apiVersion = "{3}".format(*_IRODS_VERSION) self.option = application_name irodsProt = IntegerProperty() diff --git a/irods/test/helpers.py b/irods/test/helpers.py index 8b92738fb..4cca53cdb 100644 --- a/irods/test/helpers.py +++ b/irods/test/helpers.py @@ -20,7 +20,7 @@ from irods.helpers import ( home_collection, make_session as _irods_helpers_make_session) -from irods.message import iRODSMessage, IRODS_VERSION +from irods.message import iRODSMessage from irods.password_obfuscation import encode import irods.rule from irods.session import iRODSSession