Hi there,

In SA 0.4.6 I get the following failure when attempting to merge an
object that contains a ComparableProperty:
>  ....
>   prop.merge(self, instance, merged, dont_load, _recursive)
> TypeError: merge() takes exactly 4 arguments (6 given)

Is this something I am doing wrong or a bug?

ta,

Martin

---------------

import sqlalchemy
from sqlalchemy import Column, Table, types
from sqlalchemy.orm import relation, comparable_property
from sqlalchemy.orm.interfaces import PropComparator

engine = sqlalchemy.create_engine('sqlite:///', echo=False)
metadata = sqlalchemy.MetaData()
metadata.bind = engine
Session =
sqlalchemy.orm.scoped_session(sqlalchemy.orm.sessionmaker(autoflush=True,
transactional=True, bind=engine))
mapper = Session.mapper


class PolymorphicProperty(object):

    class Comparator(PropComparator):
        def __eq__(self, other):
            return self._value == other._value

    def __init__(self, key=None, value=None):
        self.key = key
        self.value = value

    def _getValue(self):
        return self._value

    def _setValue(self, value):
        setattr(self, '_value', value)

    value = property(_getValue, _setValue)

    def __str__(self):
        return '<%s:%s %s=%s>' % (self.__class__.__name__, self.id,
self.key, self.value)

table = Table('polymorphicProperties', metadata,
                    Column('id', types.Integer, primary_key=True),
                    Column('key', types.String(20), nullable=False,
default='keyword'),
                    Column('_value', types.Text, default=None),
                )

mapper(PolymorphicProperty,
        table,
        properties={
                    'value':
comparable_property(PolymorphicProperty.Comparator,
PolymorphicProperty.value),
                    }
        )

metadata.create_all(engine)

sess = Session()
sess.begin()
prop = PolymorphicProperty(key='name', value='Bob')
sess.commit()
print prop
sess.expunge(prop)
Session.remove()

sess = Session()
# This Fails
sess.merge(prop)
Session.remove()

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to