Egon Frerich wrote: > Hi, > > here I am again. > > On my PC I've changed zope\copypastemove\__init__.py (lines 396 - 403) from > >>> checkObject(target, new_name, obj) >>> >>> chooser = INameChooser(target) >>> new_name = chooser.chooseName(new_name, obj) >>> >>> copy = locationCopy(obj) >>> copy.__parent__ = copy.__name__ = None >>> notify(ObjectCopiedEvent(copy, obj)) > > to > >>> copy = locationCopy(obj) >>> copy.__parent__ = copy.__name__ = None >>> >>> checkObject(target, new_name, copy) >>> >>> chooser = INameChooser(target) >>> new_name = chooser.chooseName(new_name, copy) >>> >>> notify(ObjectCopiedEvent(copy, obj)) > > The tests passed. The problem 562 is gone. > > Can somebody review this change?
Ever heard of a (unified) diff? Makes it easier to review code changes. Other than that, it makes sense that the name chooser should be invoked for the copy, not for the original. > @Philip: > I know there should be a test. But I'm not sure how to create the test > for this complicated issue. Maybe you can do it and I can learn from it. Or maybe I can give you a few suggestions (see issue transcript) and you can do it. > And please have another look at my NameChooser function and give me an > explanation why you think "his logic in the namechooser seems bogus too" The way it modifies the object and call itself again etc. just looks bogus. I don't think name chooser should be able to modify the object they're choosing a name for. After all, they're just choosing a name. I think you really want your own object copier if you have a requirement that obj.name should be unique throught the system. Again, see the issue transcript. Philipp _______________________________________________ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com