def test_document_collection_add_range(self): manifest = generate_manifest('C:\\Root\\Path') folder = CdmFolderDefinition(manifest.ctx, 'Folder') folder._corpus = manifest.ctx.corpus folder._folder_path = 'FolderPath/' folder._namespace = 'Namespace' self.assertEqual(0, len(folder.documents)) document = CdmDocumentDefinition(manifest.ctx, 'DocumentName') document2 = CdmDocumentDefinition(manifest.ctx, 'DocumentName2') documentList = [document, document2] folder.documents.extend(documentList) self.assertEqual(2, len(folder.documents)) self.assertEqual(document, folder.documents[0]) self.assertEqual(document2, folder.documents[1]) self.assertEqual('DocumentName', document.name) self.assertEqual('FolderPath/', document._folder_path) self.assertEqual(folder, document.owner) self.assertEqual('Namespace', document._namespace) self.assertTrue(document._needs_indexing) self.assertEqual('DocumentName2', document2.name) self.assertEqual('FolderPath/', document2._folder_path) self.assertEqual(folder, document2.owner) self.assertEqual('Namespace', document2._namespace) self.assertTrue(document2._needs_indexing)
def test_document_collection_insert(self): manifest = generate_manifest('C:\\Root\\Path') folder = CdmFolderDefinition(manifest.ctx, 'Folder') folder.in_document = manifest folder._corpus = manifest.ctx.corpus folder._folder_path = 'FolderPath/' folder._namespace = 'Namespace' document = CdmDocumentDefinition(manifest.ctx, 'DocumentName') doc1 = folder.documents.append('doc1') doc2 = folder.documents.append('doc2') manifest._is_dirty = False folder.documents.insert(2, document) self.assertTrue(manifest._is_dirty) self.assertEqual(3, len(folder.documents)) self.assertEqual(doc1, folder.documents[0]) self.assertEqual(doc2, folder.documents[1]) self.assertEqual(document, folder.documents[2]) self.assertEqual('FolderPath/', document._folder_path) self.assertEqual(folder, document.owner) self.assertEqual('Namespace', document._namespace) self.assertTrue(document._needs_indexing) self.assertEqual(folder, document.owner) self.assertTrue(document.name in folder._document_lookup) self.assertTrue(manifest.ctx.corpus._document_library._contains((folder, document))) folder.documents.insert(2, document) self.assertEqual(3, len(folder.documents))
def test_cdm_trait_collection_insert(self): manifest = generate_manifest() parent_folder = CdmFolderDefinition(manifest.ctx, 'ParentFolder') parent_folder.in_document = manifest parent_folder._namespace = 'TheNamespace' parent_folder._folder_path = 'ParentFolderPath/' child_folders = parent_folder.child_folders child_folder = CdmFolderDefinition(manifest.ctx, 'ChildFolder1') child1 = child_folders.append('child1') child2 = child_folders.append('child2') child_folder._is_dirty = False child_folders.insert(1, child_folder) self.assertEqual(3, len(child_folders)) self.assertTrue(manifest._is_dirty) self.assertEqual(child1, child_folders[0]) self.assertEqual(child_folder, child_folders[1]) self.assertEqual(child2, child_folders[2]) self.assertEqual(manifest.ctx, child_folder.ctx) self.assertEqual('ChildFolder1', child_folder.name) self.assertEqual(parent_folder, child_folder.owner) self.assertEqual('TheNamespace', child_folder._namespace) self.assertEqual(parent_folder._folder_path + child_folder.name + '/', child_folder._folder_path)
def test_folder_collection_add_range(self): manifest = generate_manifest() parent_folder = CdmFolderDefinition(manifest.ctx, 'ParentFolder') parent_folder._namespace = 'TheNamespace' parent_folder._folder_path = 'ParentFolderPath/' child_folders = parent_folder.child_folders child_folder = CdmFolderDefinition(manifest.ctx, 'ChildFolder1') child_folder2 = CdmFolderDefinition(manifest.ctx, 'ChildFolder2') child_list = [child_folder, child_folder2] self.assertEqual(0, len(child_folders)) child_folders.extend(child_list) self.assertEqual(2, len(child_folders)) self.assertEqual(child_folder, child_folders[0]) self.assertEqual(manifest.ctx, child_folder.ctx) self.assertEqual('ChildFolder1', child_folder.name) self.assertEqual(parent_folder, child_folder.owner) self.assertEqual('TheNamespace', child_folder._namespace) self.assertEqual(parent_folder._folder_path + child_folder.name + '/', child_folder._folder_path) self.assertEqual(child_folder2, child_folders[1]) self.assertEqual('ChildFolder2', child_folder2.name) self.assertEqual(parent_folder, child_folder2.owner) self.assertEqual('TheNamespace', child_folder2._namespace) self.assertEqual(parent_folder._folder_path + child_folder2.name + '/', child_folder2._folder_path)
def mount(self, namespace: str, adapter: 'StorageAdapterBase') -> None: """registers a namespace and assigns creates a storage adapter for that namespace""" with logger._enter_scope(self._TAG, self._ctx, self.mount.__name__): if not namespace: logger.error(self._ctx, self._TAG, StorageManager.mount.__name__, None, CdmLogCode.ERR_STORAGE_NULL_NAMESPACE) return None from cdm.objectmodel import CdmFolderDefinition if adapter: adapter.ctx = self._ctx self.namespace_adapters[namespace] = adapter fd = CdmFolderDefinition(self._ctx, '') fd._corpus = self._corpus fd._namespace = namespace fd._folder_path = '/' self._namespace_folders[namespace] = fd if namespace in self._system_defined_namespaces: self._system_defined_namespaces.remove(namespace) else: logger.error(self._ctx, self._TAG, StorageManager.mount.__name__, None, CdmLogCode.ERR_STORAGE_NULL_ADAPTER)
def test_document_collection_remove_at(self): manifest = generate_manifest('C:\\Root\\Path') folder = CdmFolderDefinition(manifest.ctx, 'Folder') folder._corpus = manifest.ctx.corpus folder._folder_path = 'FolderPath/' folder._namespace = 'Namespace' self.assertEqual(0, len(folder.documents)) document = folder.documents.append('DocumentName') document2 = folder.documents.append('DocumentName2') document3 = folder.documents.append('DocumentName3') self.assertEqual( 3, len(manifest.ctx.corpus._document_library._list_all_documents())) self.assertTrue( manifest.ctx.corpus._document_library._contains( (folder, document))) self.assertTrue( manifest.ctx.corpus._document_library._contains( (folder, document2))) self.assertTrue( manifest.ctx.corpus._document_library._contains( (folder, document3))) self.assertEqual(3, len(folder._document_lookup)) self.assertTrue((document.name) in folder._document_lookup) self.assertTrue((document.name) in folder._document_lookup) self.assertTrue((document.name) in folder._document_lookup) folder.documents.pop(1) folder.documents.remove('DocumentName') folder.documents.remove(document3) self.assertEqual( 0, len(manifest.ctx.corpus._document_library._list_all_documents())) self.assertFalse( manifest.ctx.corpus._document_library._contains( (folder, document))) self.assertFalse( manifest.ctx.corpus._document_library._contains( (folder, document2))) self.assertFalse( manifest.ctx.corpus._document_library._contains( (folder, document3))) self.assertEqual(0, len(folder._document_lookup)) self.assertFalse((document.name) in folder._document_lookup) self.assertFalse((document.name) in folder._document_lookup) self.assertFalse((document.name) in folder._document_lookup)
def test_folder_collection_remove(self): manifest = generate_manifest() parent_folder = CdmFolderDefinition(manifest.ctx, 'ParentFolder') parent_folder._namespace = 'TheNamespace' parent_folder._folder_path = 'ParentFolderPath/' child_folders = parent_folder.child_folders child_folder = CdmFolderDefinition(manifest.ctx, 'ChildFolder1') self.assertEqual(0, len(child_folders)) child_folders.append(child_folder) self.assertEqual(1, len(child_folders)) child_folders.remove(child_folder) self.assertEqual(0, len(child_folders))
def test_document_collection_add_with_document_name(self): manifest = generate_manifest('C:\\Root\\Path') folder = CdmFolderDefinition(manifest.ctx, 'Folder') folder._corpus = manifest.ctx.corpus folder._folder_path = 'FolderPath/' folder._namespace = 'Namespace' self.assertEqual(0, len(folder.documents)) document = folder.documents.append('DocumentName') self.assertEqual(1, len(folder.documents)) self.assertEqual('DocumentName', document.name) self.assertEqual(document, folder.documents[0]) self.assertEqual('FolderPath/', document._folder_path) self.assertEqual(folder, document.owner) self.assertEqual('Namespace', document._namespace) self.assertTrue(document._needs_indexing)
def test_folder_collection_add_with_name_parameter(self): manifest = generate_manifest('C:\\Root\\Path') parent_folder = CdmFolderDefinition(manifest. ctx, 'ParentFolder') parent_folder._namespace = 'TheNamespace' parent_folder._folder_path = 'ParentFolderPath/' child_folders = parent_folder.child_folders self.assertEqual(0, len(child_folders)) child_folder = child_folders.append('ChildFolder1') self.assertEqual(1, len(child_folders)) self.assertEqual(child_folder, child_folders[0]) self.assertEqual(manifest.ctx, child_folder.ctx) self.assertEqual('ChildFolder1', child_folder.name) self.assertEqual(parent_folder, child_folder.owner) self.assertEqual('TheNamespace', child_folder._namespace) self.assertEqual(parent_folder._folder_path + child_folder.name + '/', child_folder._folder_path)
def test_document_collection_clear(self): manifest = generate_manifest('C:\\Root\\Path') folder = CdmFolderDefinition(manifest.ctx, 'Folder') folder._corpus = manifest.ctx.corpus folder._folder_path = 'FolderPath/' folder._namespace = 'Namespace' self.assertEqual(0, len(folder.documents)) folder.documents.append('DocumentName') folder.documents.append('DocumentName2') folder.documents.append('DocumentName3') folder.documents.clear() self.assertEqual(0, len(folder._document_lookup)) self.assertEqual(0, len(manifest.ctx.corpus._document_library._list_all_documents())) self.assertEqual(0, len(folder.documents))
def test_document_collection_add(self): manifest = generate_manifest() folder = CdmFolderDefinition(manifest.ctx, 'Folder') folder._corpus = manifest.ctx.corpus folder._folder_path = 'FolderPath/' folder._namespace = 'Namespace' document = CdmDocumentDefinition(manifest.ctx, 'DocumentName') self.assertEqual(0, len(folder.documents)) added_document = folder.documents.append(document) self.assertEqual(1, len(folder.documents)) self.assertEqual(document, folder.documents[0]) self.assertEqual(document, added_document) self.assertEqual('FolderPath/', document._folder_path) self.assertEqual(folder, document.owner) self.assertEqual('Namespace', document._namespace) self.assertTrue(document._needs_indexing) doc = folder.documents.append(document) self.assertEqual(None, doc)
def test_document_collection_remove(self): manifest = generate_manifest('C:\\Root\\Path') folder = CdmFolderDefinition(manifest.ctx, 'Folder') folder._corpus = manifest.ctx.corpus folder._folder_path = 'FolderPath/' folder._namespace = 'Namespace' self.assertEqual(0, len(folder.documents)) document = CdmDocumentDefinition(manifest.ctx, 'DocumentName') document2 = CdmDocumentDefinition(manifest.ctx, 'DocumentName2') documentList = [document, document2] folder.documents.extend(documentList) self.assertEqual(2, len(folder.documents)) self.assertEqual(document, folder.documents[0]) self.assertEqual(document2, folder.documents[1]) self.assertEqual(folder, document.owner) folder.documents.remove(document) self.assertFalse(document in folder.documents) self.assertEqual(1, len(folder.documents)) self.assertEqual(document2, folder.documents[0]) self.assertEqual(None, document.owner) folder.documents.remove(document) self.assertEqual(1, len(folder.documents)) self.assertEqual(document2, folder.documents[0]) folder.documents.append(document) self.assertEqual(2, len(folder.documents)) self.assertEqual(folder, document.owner) folder.documents.remove(document.name) self.assertEqual(1, len(folder.documents)) self.assertEqual(document2, folder.documents[0]) self.assertEqual(None, document.owner)