def test_cdm_collection_appending_list(self): cdm_corpus = CdmCorpusDefinition() cdm_corpus.storage.default_namespace = 'local' cdm_corpus.storage.mount('local', LocalAdapter('CdmCorpus/LocalPath')) ctx = cdm_corpus.ctx cdm_document = CdmDocumentDefinition(ctx, 'NameOfDocument') collection = CdmCollection(ctx, cdm_document, CdmObjectType.LOCAL_ENTITY_DECLARATION_DEF) entity_list = [] for i in range(0, 2): entity = CdmEntityDefinition(cdm_corpus.ctx, 'entityName_{}'.format(i), None) create_document_for_entity(cdm_corpus, entity) entity_declaration = cdm_corpus.make_object( CdmObjectType.LOCAL_ENTITY_DECLARATION_DEF, entity.entity_name, False) # type: CdmLocalEntityDeclarationDefinition entity_declaration.entity_path = '{}/{}'.format( entity.owner.at_corpus_path, entity.entity_name) entity_declaration.owner = entity.owner entity_list.append(entity_declaration) self.assertEqual(0, len(collection)) collection.extend(entity_list) self.assertEqual(2, len(collection)) for i in range(0, 2): self.assertEqual('entityName_{}'.format(i), collection[i].entity_name)
def test_cdm_collection_change_makes_document_dirty(self): manifest = generate_manifest('C:\\Nothing') collection = CdmCollection(manifest.ctx, manifest, CdmObjectType.ENTITY_REF) manifest._is_dirty = False collection.append(CdmEntityReference(manifest.ctx, 'name', False)) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.append('theName') self.assertTrue(manifest._is_dirty) entity = CdmEntityReference(manifest.ctx, 'otherEntity', False) entity_list = [entity] manifest._is_dirty = False collection.extend(entity_list) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False entity2 = CdmEntityReference(manifest.ctx, 'otherEntity2', False) collection.insert(0, entity2) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.remove(entity) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.pop(0) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.clear() self.assertTrue(manifest._is_dirty)