Commit da8316f8 authored by Łukasz Nowak's avatar Łukasz Nowak

Fix local property detection condition.

Also extend test to cover code entries related to local property migration.
parent 97c4955d
......@@ -94,7 +94,7 @@ class PropertyTypeValidity(Constraint):
if fixit and \
property_id in [x['id'] for x in
getattr(obj, '_local_properties', ())] and \
len([x for x in obj._propertyMap() if x['id'] == property_id]) > 1:
len([x for x in obj._propertyMap() if x['id'] == property_id]) > 0:
obj._local_properties = tuple([x for x in obj._local_properties
if x['id'] != property_id])
error_list.append(self._generateError(obj,
......@@ -147,6 +147,6 @@ class PropertyTypeValidity(Constraint):
error_list.append(self._generateError(obj,
self._getMessage('message_local_property_modified'), dict(
property_id=property_id, old_value=oldvalue, new_value=value)))
obj.setProperty(property_id, value)
obj.setProperty(property_id, oldvalue)
return error_list
......@@ -1272,10 +1272,13 @@ class TestConstraint(PropertySheetTestCase):
ti._setTypeAllowedContentTypeList(allowed_types + ['Organisation'])
transaction.commit()
try:
constraint.fixConsistency(obj)
self.assertEqual(0, len(obj._local_properties))
self.assertEqual(sorted([
'Property default_organisation_title was migrated from local properties.',
'Property default_organisation_title was modified from foo to None.']),
sorted([str(q.getMessage()) for q in constraint.fixConsistency(obj)]))
self.assertEquals('foo', obj.getDefaultOrganisationTitle())
self.assertEquals('foo', obj.default_organisation.getTitle())
self.assertEqual(0, len(obj._local_properties))
finally:
ti._setTypeAllowedContentTypeList(allowed_types)
......@@ -1298,7 +1301,10 @@ class TestConstraint(PropertySheetTestCase):
portal_type="Category Property",
property_id="testing_category")
# fix consistency
constraint.fixConsistency(obj)
self.assertEqual(sorted([
'Property testing_category was migrated from local properties.',
'Property testing_category was modified from organisation_module/%s to None.' % obj.getId()]),
sorted([str(q.getMessage()) for q in constraint.fixConsistency(obj)]))
# now we can use testing_category as any category accessor
self.assertEqual(0, len(obj._local_properties))
self.assertEquals(obj, obj.getTestingCategoryValue())
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment