diff --git a/lib/spack/spack/test/spec_semantics.py b/lib/spack/spack/test/spec_semantics.py index 6342325364a..38424e951c5 100644 --- a/lib/spack/spack/test/spec_semantics.py +++ b/lib/spack/spack/test/spec_semantics.py @@ -1975,3 +1975,7 @@ def test_equality_discriminate_on_propagation(lhs, rhs): s, t = Spec(lhs), Spec(rhs) assert s != t assert len({s, t}) == 2 + + +def test_comparison_multivalued_variants(): + assert Spec("x=a") < Spec("x=a,b") < Spec("x==a,b") < Spec("x==a,b,c") diff --git a/lib/spack/spack/variant.py b/lib/spack/spack/variant.py index bce2015c120..e5a5ddfa3c9 100644 --- a/lib/spack/spack/variant.py +++ b/lib/spack/spack/variant.py @@ -378,8 +378,8 @@ def _value_setter(self, value: ValueType) -> None: def _cmp_iter(self) -> Iterable: yield self.name - yield from (str(v) for v in self.value_as_tuple) yield self.propagate + yield from (str(v) for v in self.value_as_tuple) def copy(self) -> "AbstractVariant": """Returns an instance of a variant equivalent to self