@@ -326,8 +326,36 @@ def test_java_ver(self):
326
326
res = platform .java_ver ()
327
327
self .assertEqual (len (res ), 4 )
328
328
329
+ @unittest .skipUnless (support .MS_WINDOWS , 'This test only makes sense on Windows' )
329
330
def test_win32_ver (self ):
330
- res = platform .win32_ver ()
331
+ release1 , version1 , csd1 , ptype1 = 'a' , 'b' , 'c' , 'd'
332
+ res = platform .win32_ver (release1 , version1 , csd1 , ptype1 )
333
+ self .assertEqual (len (res ), 4 )
334
+ release , version , csd , ptype = res
335
+ if release :
336
+ # Currently, release names always come from internal dicts,
337
+ # but this could change over time. For now, we just check that
338
+ # release is something different from what we have passed.
339
+ self .assertNotEqual (release , release1 )
340
+ if version :
341
+ # It is rather hard to test explicit version without
342
+ # going deep into the details.
343
+ self .assertIn ('.' , version )
344
+ for v in version .split ('.' ):
345
+ int (v ) # should not fail
346
+ if csd :
347
+ self .assertTrue (csd .startswith ('SP' ), msg = csd )
348
+ if ptype :
349
+ if os .cpu_count () > 1 :
350
+ self .assertIn ('Multiprocessor' , ptype )
351
+ else :
352
+ self .assertIn ('Uniprocessor' , ptype )
353
+
354
+ @unittest .skipIf (support .MS_WINDOWS , 'This test only makes sense on non Windows' )
355
+ def test_win32_ver_on_non_windows (self ):
356
+ release , version , csd , ptype = 'a' , '1.0' , 'c' , 'd'
357
+ res = platform .win32_ver (release , version , csd , ptype )
358
+ self .assertSequenceEqual (res , (release , version , csd , ptype ), seq_type = tuple )
331
359
332
360
def test_mac_ver (self ):
333
361
res = platform .mac_ver ()
0 commit comments