@@ -6052,30 +6052,45 @@ def test_installdir(self):
60526052 self .assertTrue (eb .installdir .endswith ('/software/Core/toy/0.0' ))
60536053
60546054 def test_sort_looseversions (self ):
6055- """Test sort_looseversions funuction."""
6056- ver1 = LooseVersion ('1.2.3' )
6057- ver2 = LooseVersion ('4.5.6' )
6058- ver3 = LooseVersion ('1.2.3dev' )
6059- ver4 = LooseVersion ('system' )
6060- ver5 = LooseVersion ('rc3' )
6061- ver6 = LooseVersion ('v1802' )
6062-
6063- # some versions are included multiple times on purpose,
6064- # to also test comparison between equal LooseVersion instances
6065- input = [ver3 , ver5 , ver1 , ver2 , ver4 , ver6 , ver3 , ver4 , ver1 ]
6066- expected = [ver1 , ver1 , ver3 , ver3 , ver2 , ver5 , ver4 , ver4 , ver6 ]
6067- self .assertEqual (sort_looseversions (input ), expected )
6068-
6069- # also test on list of tuples consisting of a LooseVersion instance + a string
6070- # (as in the list_software_* functions)
6071- suff1 = ''
6072- suff2 = '-foo'
6073- suff3 = '-bar'
6074- input = [(ver3 , suff1 ), (ver5 , suff3 ), (ver1 , suff2 ), (ver2 , suff3 ), (ver4 , suff1 ),
6075- (ver6 , suff2 ), (ver3 , suff3 ), (ver4 , suff3 ), (ver1 , suff1 )]
6076- expected = [(ver1 , suff1 ), (ver1 , suff2 ), (ver3 , suff1 ), (ver3 , suff3 ), (ver2 , suff3 ),
6077- (ver5 , suff3 ), (ver4 , suff1 ), (ver4 , suff3 ), (ver6 , suff2 )]
6078- self .assertEqual (sort_looseversions (input ), expected )
6055+ """Test sort_looseversions function."""
6056+ # Test twice: With the standard distutils LooseVersion (when available) and with our class
6057+ # Note that our class directly allows sorting but should also work with sort_loosversions
6058+ for use_distutils in (True , False ):
6059+ if use_distutils :
6060+ try :
6061+ from distutils .version import LooseVersion as version_class
6062+ except ImportError :
6063+ continue
6064+ else :
6065+ version_class = LooseVersion
6066+
6067+ ver1 = version_class ('1.2.3' )
6068+ ver2 = version_class ('4.5.6' )
6069+ ver3 = version_class ('1.2.3dev' )
6070+ ver4 = version_class ('system' )
6071+ ver5 = version_class ('rc3' )
6072+ ver6 = version_class ('v1802' )
6073+
6074+ # some versions are included multiple times on purpose,
6075+ # to also test comparison between equal LooseVersion instances
6076+ input = [ver3 , ver5 , ver1 , ver2 , ver4 , ver6 , ver3 , ver4 , ver1 ]
6077+ expected = [ver1 , ver1 , ver3 , ver3 , ver2 , ver5 , ver4 , ver4 , ver6 ]
6078+ self .assertEqual (sort_looseversions (input ), expected )
6079+ if not use_distutils :
6080+ self .assertEqual (sorted (input ), expected )
6081+
6082+ # also test on list of tuples consisting of a LooseVersion instance + a string
6083+ # (as in the list_software_* functions)
6084+ suff1 = ''
6085+ suff2 = '-foo'
6086+ suff3 = '-bar'
6087+ input = [(ver3 , suff1 ), (ver5 , suff3 ), (ver1 , suff2 ), (ver2 , suff3 ), (ver4 , suff1 ),
6088+ (ver6 , suff2 ), (ver3 , suff3 ), (ver4 , suff3 ), (ver1 , suff1 )]
6089+ expected = [(ver1 , suff1 ), (ver1 , suff2 ), (ver3 , suff1 ), (ver3 , suff3 ), (ver2 , suff3 ),
6090+ (ver5 , suff3 ), (ver4 , suff1 ), (ver4 , suff3 ), (ver6 , suff2 )]
6091+ self .assertEqual (sort_looseversions (input ), expected )
6092+ if not use_distutils :
6093+ self .assertEqual (sorted (input ), expected )
60796094
60806095 def test_cuda_compute_capabilities (self ):
60816096 """Test --cuda-compute-capabilities configuration option."""
0 commit comments