From 4d760ac1f9fcf0dbe0df1954a3ef45f71385e073 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Wed, 6 Nov 2024 12:22:34 -0500 Subject: [PATCH] Add dedicated tests for the max local version sentinel (#8869) --- crates/uv-pep440/src/version/tests.rs | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/crates/uv-pep440/src/version/tests.rs b/crates/uv-pep440/src/version/tests.rs index 2d10a2e66..78b38a0a2 100644 --- a/crates/uv-pep440/src/version/tests.rs +++ b/crates/uv-pep440/src/version/tests.rs @@ -1149,6 +1149,39 @@ fn ordering() { } } +#[test] +fn local_sentinel_version() { + let sentinel = Version::new([1, 0]).with_local(LocalVersion::Max); + + // Ensure that the "max local version" sentinel is less than the following versions. + let versions = &["1.0.post0", "1.1"]; + + for greater in versions { + let greater = greater.parse::().unwrap(); + assert_eq!( + sentinel.cmp(&greater), + Ordering::Less, + "less: {:?}\ngreater: {:?}", + greater.as_bloated_debug(), + sentinel.as_bloated_debug(), + ); + } + + // Ensure that the "max local version" sentinel is greater than the following versions. + let versions = &["1.0", "1.0.a0", "1.0+local"]; + + for less in versions { + let less = less.parse::().unwrap(); + assert_eq!( + sentinel.cmp(&less), + Ordering::Greater, + "less: {:?}\ngreater: {:?}", + sentinel.as_bloated_debug(), + less.as_bloated_debug() + ); + } +} + #[test] fn min_version() { // Ensure that the `.min` suffix precedes all other suffixes.