Fix problem with pure integer arguments in preferred versions list (e.g, 2 instead of 2.7.3)

This commit is contained in:
Matthew LeGendre 2016-03-09 16:11:33 -08:00
parent 87db69478d
commit a384ad5b12
2 changed files with 6 additions and 5 deletions

View file

@ -214,7 +214,8 @@
'version': {
'type' : 'array',
'default' : [],
'items' : { 'type' : 'string' } }, #version strings
'items' : { 'anyOf' : [ { 'type' : 'string' },
{ 'type' : 'number'}]}}, #version strings
'compiler': {
'type' : 'array',
'default' : [],
@ -573,7 +574,7 @@ def __init__(self, validation_error, data):
# Try to get line number from erroneous instance and its parent
instance_mark = getattr(validation_error.instance, '_start_mark', None)
parent_mark = getattr(validation_error.parent, '_start_mark', None)
path = getattr(validation_error, 'path', None)
path = [str(s) for s in getattr(validation_error, 'path', None)]
# Try really hard to get the parent (which sometimes is not
# set) This digs it out of the validated structure if it's not

View file

@ -45,7 +45,7 @@ def _order_for_package(self, pkgname, component, second_key, test_all=True):
order = order.get(second_key, {})
if not order:
continue
return [s.strip() for s in order]
return [str(s).strip() for s in order]
return []
@ -98,11 +98,11 @@ def _spec_compare(self, pkgname, component, a, b, reverse_natural_compare, secon
b_index = None
reverse = -1 if reverse_natural_compare else 1
for i, cspec in enumerate(specs):
if a_index == None and cspec.satisfies(a):
if a_index == None and (cspec.satisfies(a) or a.satisfies(cspec)):
a_index = i
if b_index:
break
if b_index == None and cspec.satisfies(b):
if b_index == None and (cspec.satisfies(b) or b.satisfies(cspec)):
b_index = i
if a_index:
break