@@ -285,6 +285,42 @@ def test_libc_ver(self):
285
285
self .assertEqual (platform .libc_ver (support .TESTFN ),
286
286
('glibc' , '1.23.4' ))
287
287
288
+ @support .cpython_only
289
+ def test__comparable_version (self ):
290
+ from platform import _comparable_version as V
291
+ self .assertEqual (V ('1.2.3' ), V ('1.2.3' ))
292
+ self .assertLess (V ('1.2.3' ), V ('1.2.10' ))
293
+ self .assertEqual (V ('1.2.3.4' ), V ('1_2-3+4' ))
294
+ self .assertLess (V ('1.2spam' ), V ('1.2dev' ))
295
+ self .assertLess (V ('1.2dev' ), V ('1.2alpha' ))
296
+ self .assertLess (V ('1.2dev' ), V ('1.2a' ))
297
+ self .assertLess (V ('1.2alpha' ), V ('1.2beta' ))
298
+ self .assertLess (V ('1.2a' ), V ('1.2b' ))
299
+ self .assertLess (V ('1.2beta' ), V ('1.2c' ))
300
+ self .assertLess (V ('1.2b' ), V ('1.2c' ))
301
+ self .assertLess (V ('1.2c' ), V ('1.2RC' ))
302
+ self .assertLess (V ('1.2c' ), V ('1.2rc' ))
303
+ self .assertLess (V ('1.2RC' ), V ('1.2.0' ))
304
+ self .assertLess (V ('1.2rc' ), V ('1.2.0' ))
305
+ self .assertLess (V ('1.2.0' ), V ('1.2pl' ))
306
+ self .assertLess (V ('1.2.0' ), V ('1.2p' ))
307
+
308
+ self .assertLess (V ('1.5.1' ), V ('1.5.2b2' ))
309
+ self .assertLess (V ('3.10a' ), V ('161' ))
310
+ self .assertEqual (V ('8.02' ), V ('8.02' ))
311
+ self .assertLess (V ('3.4j' ), V ('1996.07.12' ))
312
+ self .assertLess (V ('3.1.1.6' ), V ('3.2.pl0' ))
313
+ self .assertLess (V ('2g6' ), V ('11g' ))
314
+ self .assertLess (V ('0.9' ), V ('2.2' ))
315
+ self .assertLess (V ('1.2' ), V ('1.2.1' ))
316
+ self .assertLess (V ('1.1' ), V ('1.2.2' ))
317
+ self .assertLess (V ('1.1' ), V ('1.2' ))
318
+ self .assertLess (V ('1.2.1' ), V ('1.2.2' ))
319
+ self .assertLess (V ('1.2' ), V ('1.2.2' ))
320
+ self .assertLess (V ('0.4' ), V ('0.4.0' ))
321
+ self .assertLess (V ('1.13++' ), V ('5.5.kw' ))
322
+ self .assertLess (V ('0.960923' ), V ('2.2beta29' ))
323
+
288
324
def test_parse_release_file (self ):
289
325
290
326
for input , output in (
0 commit comments