From: Jason Kirtland Date: Tue, 28 Aug 2007 15:17:26 +0000 (+0000) Subject: Fixed OrderedProperties pickling [ticket:762] X-Git-Tag: rel_0_4beta6~75 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b11fde9cff282de6ab6940782af593da2bda7791;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Fixed OrderedProperties pickling [ticket:762] --- diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py index 44ff3a2c5c..321540419f 100644 --- a/lib/sqlalchemy/util.py +++ b/lib/sqlalchemy/util.py @@ -275,10 +275,10 @@ class OrderedProperties(object): self._data[key] = object def __getstate__(self): - return self._data + return {'_data': self.__dict__['_data']} - def __setstate__(self, value): - self.__dict__['_data'] = value + def __setstate__(self, state): + self.__dict__['_data'] = state['_data'] def __getattr__(self, key): try: diff --git a/test/engine/reflection.py b/test/engine/reflection.py index 3bb1886227..c70dc3f2eb 100644 --- a/test/engine/reflection.py +++ b/test/engine/reflection.py @@ -372,6 +372,7 @@ class ReflectionTest(PersistTest): meta.bind = testbase.db meta2 = pickle.loads(pickle.dumps(meta)) assert meta2.bind is None + meta3 = pickle.loads(pickle.dumps(meta2)) return (meta2.tables['mytable'], meta2.tables['othertable']) def test_pickle_via_reflect():