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)
def test_cdm_collection_remove_at(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.ATTRIBUTE_CONTEXT_DEF) collection.append('nameOfNewDocument') appended_document2 = collection.append('otherDocument') self.assertEqual(2, len(collection)) collection.pop(0) self.assertEqual(1, len(collection)) self.assertEqual(appended_document2, collection[0]) collection.pop(1) self.assertEqual(1, len(collection)) self.assertEqual(appended_document2, collection[0]) collection.pop(0) self.assertEqual(0, len(collection))