Example #1
0
    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)
Example #2
0
    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)