@@ -275,6 +275,42 @@ def test_libc_ver(self):
275
275
self .assertEqual (platform .libc_ver (support .TESTFN ),
276
276
('glibc' , '1.23.4' ))
277
277
278
+ @support .cpython_only
279
+ def test__comparable_version (self ):
280
+ from platform import _comparable_version as V
281
+ self .assertEqual (V ('1.2.3' ), V ('1.2.3' ))
282
+ self .assertLess (V ('1.2.3' ), V ('1.2.10' ))
283
+ self .assertEqual (V ('1.2.3.4' ), V ('1_2-3+4' ))
284
+ self .assertLess (V ('1.2spam' ), V ('1.2dev' ))
285
+ self .assertLess (V ('1.2dev' ), V ('1.2alpha' ))
286
+ self .assertLess (V ('1.2dev' ), V ('1.2a' ))
287
+ self .assertLess (V ('1.2alpha' ), V ('1.2beta' ))
288
+ self .assertLess (V ('1.2a' ), V ('1.2b' ))
289
+ self .assertLess (V ('1.2beta' ), V ('1.2c' ))
290
+ self .assertLess (V ('1.2b' ), V ('1.2c' ))
291
+ self .assertLess (V ('1.2c' ), V ('1.2RC' ))
292
+ self .assertLess (V ('1.2c' ), V ('1.2rc' ))
293
+ self .assertLess (V ('1.2RC' ), V ('1.2.0' ))
294
+ self .assertLess (V ('1.2rc' ), V ('1.2.0' ))
295
+ self .assertLess (V ('1.2.0' ), V ('1.2pl' ))
296
+ self .assertLess (V ('1.2.0' ), V ('1.2p' ))
297
+
298
+ self .assertLess (V ('1.5.1' ), V ('1.5.2b2' ))
299
+ self .assertLess (V ('3.10a' ), V ('161' ))
300
+ self .assertEqual (V ('8.02' ), V ('8.02' ))
301
+ self .assertLess (V ('3.4j' ), V ('1996.07.12' ))
302
+ self .assertLess (V ('3.1.1.6' ), V ('3.2.pl0' ))
303
+ self .assertLess (V ('2g6' ), V ('11g' ))
304
+ self .assertLess (V ('0.9' ), V ('2.2' ))
305
+ self .assertLess (V ('1.2' ), V ('1.2.1' ))
306
+ self .assertLess (V ('1.1' ), V ('1.2.2' ))
307
+ self .assertLess (V ('1.1' ), V ('1.2' ))
308
+ self .assertLess (V ('1.2.1' ), V ('1.2.2' ))
309
+ self .assertLess (V ('1.2' ), V ('1.2.2' ))
310
+ self .assertLess (V ('0.4' ), V ('0.4.0' ))
311
+ self .assertLess (V ('1.13++' ), V ('5.5.kw' ))
312
+ self .assertLess (V ('0.960923' ), V ('2.2beta29' ))
313
+
278
314
def test_popen (self ):
279
315
mswindows = (sys .platform == "win32" )
280
316
0 commit comments