def testCloneNamedFileBlobsOnCloneModifiers(self): file_fti = DexterityFTI( 'BlobFile', model_source=""" <model xmlns="http://namespaces.plone.org/supermodel/schema"> <schema> <field name="file" type="plone.namedfile.field.NamedBlobFile"> <title>File</title> <required>True</required> </field> </schema> </model> """) self.portal.portal_types._setObject('BlobFile', file_fti) file1 = createContentInContainer(self.portal, 'BlobFile') file1.file = NamedBlobFile('dummy test data', filename=u'test.txt') modifier = CloneNamedFileBlobs('modifier', 'Modifier') on_clone_modifiers = modifier.getOnCloneModifiers(file1) pers_id, pers_load, empty1, empty2 = on_clone_modifiers self.assertTrue(pers_id(file1.file._blob)) self.assertTrue(pers_load(file1.file._blob) is None) self.assertTrue(empty1 == []) self.assertTrue(empty2 == [])
def testCloneNamedFileBlobsWithNoFile(self): file_fti = DexterityFTI( 'BlobFile', model_source=""" <model xmlns="http://namespaces.plone.org/supermodel/schema"> <schema> <field name="file" type="plone.namedfile.field.NamedBlobFile"> <title>File</title> <required>True</required> </field> </schema> </model> """) self.portal.portal_types._setObject('BlobFile', file_fti) file1 = createContentInContainer(self.portal, 'BlobFile') modifier = CloneNamedFileBlobs('modifier', 'Modifier') attrs_dict = modifier.getReferencedAttributes(file1) self.assertTrue(attrs_dict == {}) on_clone_modifiers = modifier.getOnCloneModifiers(file1) pers_id, pers_load, empty1, empty2 = on_clone_modifiers self.assertTrue(pers_id(None) is None) self.assertTrue(pers_load(None) is None) self.assertTrue(empty1 == []) self.assertTrue(empty2 == []) # Previous version without file but working copy has a file. self.portal.portal_repository.save(file1) file1.file = NamedBlobFile('dummy test data', filename=u'test.txt') attrs_dict = modifier.getReferencedAttributes(file1) self.assertTrue( 'plone.dexterity.schema.generated.plone_0_BlobFile.file' in attrs_dict) blob = attrs_dict.values()[0] self.assertTrue(IBlob.providedBy(blob)) on_clone_modifiers = modifier.getOnCloneModifiers(file1) pers_id, pers_load, empty1, empty2 = on_clone_modifiers self.assertTrue(pers_id(file1.file._blob)) self.assertTrue(pers_load(file1.file._blob) is None) self.assertTrue(empty1 == []) self.assertTrue(empty2 == [])
def testCloneNamedFileBlobsWithNoFile(self): file_fti = DexterityFTI('BlobFile', model_source=""" <model xmlns="http://namespaces.plone.org/supermodel/schema"> <schema> <field name="file" type="plone.namedfile.field.NamedBlobFile"> <title>File</title> <required>True</required> </field> </schema> </model> """) self.portal.portal_types._setObject('BlobFile', file_fti) file1 = createContentInContainer(self.portal, 'BlobFile') modifier = CloneNamedFileBlobs('modifier', 'Modifier') attrs_dict = modifier.getReferencedAttributes(file1) self.assertTrue(attrs_dict == {}) on_clone_modifiers = modifier.getOnCloneModifiers(file1) pers_id, pers_load, empty1, empty2 = on_clone_modifiers self.assertTrue(pers_id(None) is None) self.assertTrue(pers_load(None) is None) self.assertTrue(empty1 == []) self.assertTrue(empty2 == []) # Previous version without file but working copy has a file. self.portal.portal_repository.save(file1) file1.file = NamedBlobFile('dummy test data', filename=u'test.txt') attrs_dict = modifier.getReferencedAttributes(file1) self.assertTrue( 'plone.dexterity.schema.generated.plone_0_BlobFile.file' in attrs_dict) blob = list(attrs_dict.values())[0] self.assertTrue(IBlob.providedBy(blob)) on_clone_modifiers = modifier.getOnCloneModifiers(file1) pers_id, pers_load, empty1, empty2 = on_clone_modifiers self.assertTrue(pers_id(file1.file._blob)) self.assertTrue(pers_load(file1.file._blob) is None) self.assertTrue(empty1 == []) self.assertTrue(empty2 == [])
def testCloneNamedFileBlobsOnCloneModifiers(self): file_fti = DexterityFTI('BlobFile', model_source=""" <model xmlns="http://namespaces.plone.org/supermodel/schema"> <schema> <field name="file" type="plone.namedfile.field.NamedBlobFile"> <title>File</title> <required>True</required> </field> </schema> </model> """) self.portal.portal_types._setObject('BlobFile', file_fti) file1 = createContentInContainer(self.portal, 'BlobFile') file1.file = NamedBlobFile('dummy test data', filename=u'test.txt') modifier = CloneNamedFileBlobs('modifier', 'Modifier') pers_id, pers_load, empty1, empty2 = modifier.getOnCloneModifiers( file1) self.assertTrue(pers_id(file1.file._blob)) self.assertTrue(pers_load(file1.file._blob) is None) self.assertTrue(empty1 == []) self.assertTrue(empty2 == [])