def register(klass): global documents if klass.document_type in documents: raise ValueError("document_type %s already registered!" % klass.document_type) documents[klass.document_type] = klass klass.type_name = klass.document_type serialization.register(klass) return klass
def register(klass, name, configuration_id=None): global registry registry[name] = klass doc_id = configuration_id or name + "_conf" klass.descriptor_type = name klass.type_name = name + ":data" klass.configuration_doc_id = doc_id serialization.register(klass) return klass
def __class__init__(cls, name, bases, dct): # agent.descriptor_type -> HandlerFactory cls._handlers = dict() # name -> Relation cls._relations = dict() for base in bases: cls._relations.update(getattr(base, '_relations', dict())) cls._handlers.update(getattr(base, '_handlers', dict())) cls._define_default_handler(cls.default_handler) serialization.register(cls)
def testMigrating(self): serialization.register(VersionedTest1) feat.initial_data(VersionedTest1) yield tools.push_initial_data(self.connection) doc = yield self.connection.get_document('testdoc') self.assertEqual('default', doc.field1) serialization.register(VersionedTest2) yield tools.migration_script(self.connection) doc = yield self.connection.get_document('testdoc') self.assertEqual('default upgraded', doc.field1)
def testComplexMigration(self): migration.register(ComplexMigration(type_name=VersionedTest2.type_name, source_ver=1, target_ver=2)) serialization.register(VersionedTest2) doc = yield self.connection.save_document(VersionedTest1()) self.assertEqual('default', doc.field1) yield tools.migration_script(self.connection) self.assertTrue(self.run) doc = yield self.connection.get_document('testdoc') self.assertEqual('default upgraded', doc.field1) self.assertTrue('attachment' in doc.attachments)
def testMigrating(self): serialization.register(VersionedTest1) feat.initial_data(VersionedTest1) yield tools.push_initial_data(self.connection) doc = yield self.connection.get_document('testdoc') self.assertEqual('default', doc.field1) serialization.register(VersionedTest2) migration.register(SimpleMigration(type_name=VersionedTest2.type_name, source_ver=1, target_ver=2)) yield tools.migration_script(self.connection) doc = yield self.connection.get_document('testdoc') self.assertEqual('default upgraded', doc.field1)
def testComplexMigration(self): mig = migration.Migration() self.run = False def handler(connection, unparsed): doc = connection._unserializer.convert(unparsed) self.run = True doc.create_attachment('attachment', 'Hi!') return connection.save_document(doc) mig.registry.register(VersionedTest2) mig.migrate_type(VersionedTest2, handler) r = applications.get_application_registry() snapshot = r.get_snapshot() self.addCleanup(r.reset, snapshot) r.reset([]) app = applications.Application() app.name = u'test' r.register(app) app.register_migration('1.0', mig) serialization.register(VersionedTest2) doc = yield self.connection.save_document(VersionedTest2()) self.assertEqual('default', doc.field1) yield tools.migration_script(self.connection) self.assertTrue(self.run) doc = yield self.connection.get_document('testdoc') self.assertEqual('default', doc.field1) self.assertTrue('attachment' in doc.attachments) version_doc = yield self.connection.query_view( tools.ApplicationVersions, key='test', include_docs=True) self.assertEquals(1, len(version_doc)) self.assertEquals('1.0', version_doc[0].version) self.assertEquals('test', version_doc[0].name)
def setUp(self): self.serializer = json.Serializer() register(TestDocument) self.unserializer = json.PaisleyUnserializer()
def setUp(self): self.serializer = json.Serializer() register(TestDocument) self.unserializer = dcommon.CouchdbUnserializer()
def __init__(cls, name, bases, dct): cls.type_name = reflect.canonical_name(cls) serialization.register(cls) super(MetaReplier, cls).__init__(name, bases, dct)
def __init__(self, instance): self.instance = instance self.type_name = instance.type_name serialization.register(self)
def __init__(self, replay, type_name, cls): self.replay = replay self.type_name = type_name self.cls = cls serialization.register(self)