@@ -293,11 +293,147 @@ def test_difference() -> None:
293
293
@pytest .mark .parametrize (
294
294
"version, expected" ,
295
295
[
296
- ("1.2.3" , "1.2.3-dev.0" ),
297
- ("1.2.3-alpha.0" , "1.2.3-alpha.0-dev.0" ),
298
- ("1.2.3-dev.0" , "1.2.3-dev.1" ),
296
+ ("1" , "2" ),
297
+ ("2!1" , "2!2" ),
298
+ ("1+local" , "2" ),
299
+ ("1.2" , "2.0" ),
300
+ ("1.2.3" , "2.0.0" ),
301
+ ("1.2.3.4" , "2.0.0.0" ),
302
+ ("1.dev0" , "1" ),
303
+ ("1.2.dev0" , "2.0" ),
304
+ ("1.post1" , "2" ),
305
+ ("1.2.post1" , "2.0" ),
306
+ ("1.post1.dev0" , "2" ),
307
+ ("1.2.post1.dev0" , "2.0" ),
308
+ ("1.a1" , "1" ),
309
+ ("1.2a1" , "2.0" ),
310
+ ("1.a1.post2" , "1" ),
311
+ ("1.2a1.post2" , "2.0" ),
312
+ ("1.a1.post2.dev0" , "1" ),
313
+ ("1.2a1.post2.dev0" , "2.0" ),
299
314
],
300
315
)
301
- def test_next_devrelease (version : str , expected : str ) -> None :
316
+ def test_next_major (version : str , expected : str ) -> None :
302
317
v = Version .parse (version )
303
- assert v .next_devrelease () == Version .parse (expected )
318
+ assert str (v .next_major ()) == expected
319
+
320
+
321
+ @pytest .mark .parametrize (
322
+ "version, expected" ,
323
+ [
324
+ ("1" , "1.1" ),
325
+ ("1.2" , "1.3" ),
326
+ ("2!1.2" , "2!1.3" ),
327
+ ("1.2+local" , "1.3" ),
328
+ ("1.2.3" , "1.3.0" ),
329
+ ("1.2.3.4" , "1.3.0.0" ),
330
+ ("1.dev0" , "1" ),
331
+ ("1.2dev0" , "1.2" ),
332
+ ("1.2.3dev0" , "1.3.0" ),
333
+ ("1.post1" , "1.1" ),
334
+ ("1.2.post1" , "1.3" ),
335
+ ("1.2.3.post1" , "1.3.0" ),
336
+ ("1.post1.dev0" , "1.1" ),
337
+ ("1.2.post1.dev0" , "1.3" ),
338
+ ("1.a1" , "1" ),
339
+ ("1.2a1" , "1.2" ),
340
+ ("1.2.3a1" , "1.3.0" ),
341
+ ("1.a1.post2" , "1" ),
342
+ ("1.2a1.post2" , "1.2" ),
343
+ ("1.2.3a1.post2" , "1.3.0" ),
344
+ ("1.a1.post2.dev0" , "1" ),
345
+ ("1.2a1.post2.dev0" , "1.2" ),
346
+ ("1.2.3a1.post2.dev0" , "1.3.0" ),
347
+ ],
348
+ )
349
+ def test_next_minor (version : str , expected : str ) -> None :
350
+ v = Version .parse (version )
351
+ assert str (v .next_minor ()) == expected
352
+
353
+
354
+ @pytest .mark .parametrize (
355
+ "version, expected" ,
356
+ [
357
+ ("1" , "1.0.1" ),
358
+ ("1.2" , "1.2.1" ),
359
+ ("1.2.3" , "1.2.4" ),
360
+ ("2!1.2.3" , "2!1.2.4" ),
361
+ ("1.2.3+local" , "1.2.4" ),
362
+ ("1.2.3.4" , "1.2.4.0" ),
363
+ ("1.dev0" , "1" ),
364
+ ("1.2dev0" , "1.2" ),
365
+ ("1.2.3dev0" , "1.2.3" ),
366
+ ("1.2.3.4dev0" , "1.2.4.0" ),
367
+ ("1.post1" , "1.0.1" ),
368
+ ("1.2.post1" , "1.2.1" ),
369
+ ("1.2.3.post1" , "1.2.4" ),
370
+ ("1.post1.dev0" , "1.0.1" ),
371
+ ("1.2.post1.dev0" , "1.2.1" ),
372
+ ("1.2.3.post1.dev0" , "1.2.4" ),
373
+ ("1.a1" , "1" ),
374
+ ("1.2a1" , "1.2" ),
375
+ ("1.2.3a1" , "1.2.3" ),
376
+ ("1.2.3.4a1" , "1.2.4.0" ),
377
+ ("1.a1.post2" , "1" ),
378
+ ("1.2a1.post2" , "1.2" ),
379
+ ("1.2.3a1.post2" , "1.2.3" ),
380
+ ("1.2.3.4a1.post2" , "1.2.4.0" ),
381
+ ("1.a1.post2.dev0" , "1" ),
382
+ ("1.2a1.post2.dev0" , "1.2" ),
383
+ ("1.2.3a1.post2.dev0" , "1.2.3" ),
384
+ ("1.2.3.4a1.post2.dev0" , "1.2.4.0" ),
385
+ ],
386
+ )
387
+ def test_next_patch (version : str , expected : str ) -> None :
388
+ v = Version .parse (version )
389
+ assert str (v .next_patch ()) == expected
390
+
391
+
392
+ @pytest .mark .parametrize (
393
+ "version, expected" ,
394
+ [
395
+ ("1.2a1" , "1.2a2" ),
396
+ ("2!1.2a1" , "2!1.2a2" ),
397
+ ("1.2dev0" , "1.2a0" ),
398
+ ("1.2a1.dev0" , "1.2a1" ),
399
+ ("1.2a1.post1.dev0" , "1.2a2" ),
400
+ ],
401
+ )
402
+ def test_next_prerelease (version : str , expected : str ) -> None :
403
+ v = Version .parse (version )
404
+ assert str (v .next_prerelease ()) == expected
405
+
406
+
407
+ @pytest .mark .parametrize (
408
+ "version, expected" ,
409
+ [
410
+ ("1" , "1.post0" ),
411
+ ("1.post1" , "1.post2" ),
412
+ ("9!1.2.3.4" , "9!1.2.3.4.post0" ),
413
+ ("9!1.2.3.4.post2" , "9!1.2.3.4.post3" ),
414
+ ("1.dev0" , "1.post0" ),
415
+ ("1.post1.dev0" , "1.post1" ),
416
+ ("1a1" , "1a1.post0" ),
417
+ ("1a1.dev0" , "1a1.post0" ),
418
+ ("1a1.post2" , "1a1.post3" ),
419
+ ("1a1.post2.dev0" , "1a1.post2" ),
420
+ ],
421
+ )
422
+ def test_next_postrelease (version : str , expected : str ) -> None :
423
+ v = Version .parse (version )
424
+ assert str (v .next_postrelease ()) == expected
425
+
426
+
427
+ def test_next_devrelease () -> None :
428
+ v = Version .parse ("9!1.2.3a1.post2.dev3" )
429
+ assert str (v .next_devrelease ()) == "9!1.2.3a1.post2.dev4"
430
+
431
+
432
+ def test_next_firstprerelease () -> None :
433
+ v = Version .parse ("9!1.2.3a1.post2.dev3" )
434
+ assert str (v .first_prerelease ()) == "9!1.2.3a0"
435
+
436
+
437
+ def test_next_firstdevrelease () -> None :
438
+ v = Version .parse ("9!1.2.3a1.post2.dev3" )
439
+ assert str (v .first_devrelease ()) == "9!1.2.3a1.post2.dev0"
0 commit comments