@@ -557,37 +557,100 @@ def test_should_compare_version_dictionaries():
557
557
assert not (v1 == v4 )
558
558
559
559
560
- def test_should_compare_version_tuples ():
561
- v0 = VersionInfo (major = 0 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
562
- v1 = VersionInfo (major = 3 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
563
- for t in (
560
+ @pytest .mark .parametrize (
561
+ "t" , # fmt: off
562
+ (
564
563
(1 , 0 , 0 ),
565
564
(1 , 0 ),
566
565
(1 ,),
567
566
(1 , 0 , 0 , "pre.2" ),
568
567
(1 , 0 , 0 , "pre.2" , "build.4" ),
569
- ):
570
- assert v0 < t
571
- assert v0 <= t
572
- assert v0 != t
573
- assert not v0 == t
574
- assert v1 > t
575
- assert v1 >= t
576
- # Symmetric
577
- assert t > v0
578
- assert t >= v0
579
- assert t < v1
580
- assert t <= v1
581
- assert t != v0
582
- assert not t == v0
583
-
584
-
585
- def test_should_not_allow_to_compare_version_with_string ():
568
+ ), # fmt: on
569
+ )
570
+ def test_should_compare_version_tuples (t ):
571
+ v0 = VersionInfo (major = 0 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
586
572
v1 = VersionInfo (major = 3 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
587
- with pytest .raises (TypeError ):
588
- v1 > "1.0.0"
589
- with pytest .raises (TypeError ):
590
- "1.0.0" > v1
573
+
574
+ assert v0 < t
575
+ assert v0 <= t
576
+ assert v0 != t
577
+ assert not v0 == t
578
+ assert v1 > t
579
+ assert v1 >= t
580
+ # Symmetric
581
+ assert t > v0
582
+ assert t >= v0
583
+ assert t < v1
584
+ assert t <= v1
585
+ assert t != v0
586
+ assert not t == v0
587
+
588
+
589
+ @pytest .mark .parametrize (
590
+ "lst" , # fmt: off
591
+ (
592
+ [1 , 0 , 0 ],
593
+ [1 , 0 ],
594
+ [1 ],
595
+ [1 , 0 , 0 , "pre.2" ],
596
+ [1 , 0 , 0 , "pre.2" , "build.4" ],
597
+ ), # fmt: on
598
+ )
599
+ def test_should_compare_version_list (lst ):
600
+ v0 = VersionInfo (major = 0 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
601
+ v1 = VersionInfo (major = 3 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
602
+
603
+ assert v0 < lst
604
+ assert v0 <= lst
605
+ assert v0 != lst
606
+ assert not v0 == lst
607
+ assert v1 > lst
608
+ assert v1 >= lst
609
+ # Symmetric
610
+ assert lst > v0
611
+ assert lst >= v0
612
+ assert lst < v1
613
+ assert lst <= v1
614
+ assert lst != v0
615
+ assert not lst == v0
616
+
617
+
618
+ @pytest .mark .parametrize (
619
+ "s" , # fmt: off
620
+ (
621
+ "1.0.0" ,
622
+ # "1.0",
623
+ # "1",
624
+ "1.0.0-pre.2" ,
625
+ "1.0.0-pre.2+build.4" ,
626
+ ), # fmt: on
627
+ )
628
+ def test_should_compare_version_string (s ):
629
+ v0 = VersionInfo (major = 0 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
630
+ v1 = VersionInfo (major = 3 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
631
+
632
+ assert v0 < s
633
+ assert v0 <= s
634
+ assert v0 != s
635
+ assert not v0 == s
636
+ assert v1 > s
637
+ assert v1 >= s
638
+ # Symmetric
639
+ assert s > v0
640
+ assert s >= v0
641
+ assert s < v1
642
+ assert s <= v1
643
+ assert s != v0
644
+ assert not s == v0
645
+
646
+
647
+ @pytest .mark .parametrize ("s" , ("1" , "1.0" , "1.0.x" ))
648
+ def test_should_not_allow_to_compare_invalid_versionstring (s ):
649
+ v = VersionInfo (major = 3 , minor = 4 , patch = 5 , prerelease = "pre.2" , build = "build.4" )
650
+ with pytest .raises (ValueError ):
651
+ v < s
652
+ with pytest .raises (ValueError ):
653
+ s > v
591
654
592
655
593
656
def test_should_not_allow_to_compare_version_with_int ():
0 commit comments