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
No related merge requests found
......@@ -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