def delete_removed(self, folder_name, current_block_cell_names, block_filter=None): """ current_block_cell_names is the set of BlockCellNames currently in closure Items not in closure, can be deleted Params: folder_name = SRC_DIR or DEP_DIR current_block_cell_names = [BlockCellName] block_filter = BlockName or None if BlockName only files from that BlockName will be deleted """ bii_ignore = self._user_cache.bii_ignore folder = self._bii_paths.get_src_folder(folder_name) root_block = self._bii_paths.root_block project_folder = self._bii_paths.project_root # Files on biicode control (excluded ignored) thefiles = walk_bii_folder(folder, bii_ignore, self._biiout) if root_block and folder_name == SRC_DIR: afiles = walk_anonymous_block(self._bii_paths, bii_ignore, self._biiout, root_block) thefiles.update(afiles) # Delete removed cells for blockcellname in thefiles: if ((not block_filter or blockcellname.block_name == block_filter) and blockcellname not in current_block_cell_names): if blockcellname.block_name == root_block: filepath = os.path.join(project_folder, blockcellname.cell_name) else: filepath = os.path.join(folder, blockcellname) os.unlink(filepath) self._delete_empty_dirs(folder_name, block_filter)
def delete_removed(self, folder_name, current_block_cell_names, block_filter=None): """ current_block_cell_names is the set of BlockCellNames currently in closure Items not in closure, can be deleted Params: folder_name = SRC_DIR or DEP_DIR current_block_cell_names = [BlockCellName] block_filter = BlockName or None if BlockName only files from that BlockName will be deleted """ bii_ignore = self._user_cache.bii_ignore folder = self._bii_paths.get_src_folder(folder_name) root_block = self._bii_paths.root_block project_folder = self._bii_paths.project_root # Files on biicode control (excluded ignored) thefiles = walk_bii_folder(folder, bii_ignore, self._biiout) if root_block and folder_name == SRC_DIR: afiles = walk_anonymous_block(self._bii_paths, bii_ignore, self._biiout, root_block) thefiles.update(afiles) # Delete removed cells for blockcellname in thefiles: if ((not block_filter or blockcellname.block_name == block_filter) and blockcellname not in current_block_cell_names): if blockcellname.block_name == root_block: filepath = os.path.join(project_folder, blockcellname.cell_name) else: filepath = os.path.join(folder, blockcellname) os.unlink(filepath) self._delete_empty_dirs(folder_name, block_filter)
def test_bad_location(self): bii_ignore = BiiIgnore.defaults() save(os.path.join(self.folder, 'User/mybadFile.cpp'), '') _ = walk_bii_folder(self.folder, bii_ignore, self.biiout) # Check that the system detected misplaced file self.assertIn("WARN: User/mybadFile.cpp is misplaced", str(self.biiout))
def get_src_files(self): """ scans the SRC_DIR to obtain a {BlockCellName: ByteLoad} """ #scan regular block folder bii_ignore = self._user_cache.bii_ignore result = walk_bii_folder(self._bii_paths.blocks, bii_ignore, self._biiout) # check if the project root has to be scanned self.update_root_block() project_block = self._bii_paths.root_block # scan project root if project_block: result_filter = { bcn: content for bcn, content in result.iteritems() if bcn.block_name != project_block } if len(result) != len(result_filter): self._biiout.warn( "Skipping %s block, it already exist in project root" % project_block) result = result_filter anon = walk_anonymous_block(self._bii_paths, bii_ignore, self._biiout, project_block) result.update(anon) return result
def test_src_default_accepted(self): bii_ignore = BiiIgnore.defaults() save(os.path.join(self.folder, 'User/Block/myFile.cpp'), '') src_files = walk_bii_folder(self.folder, bii_ignore, self.biiout) self.assertEqual(['User/Block/myFile.cpp'], src_files.keys()) # Check disk disk_src_files = set([f.replace('\\', '/') for f in self._get_files()]) self.assertEqual({'User/Block/myFile.cpp'}, disk_src_files)
def test_src_default_accepted(self): bii_ignore = BiiIgnore.defaults() save(os.path.join(self.folder, 'User/Block/myFile.cpp'), '') src_files = walk_bii_folder(self.folder, bii_ignore, self.biiout) self.assertEqual(['User/Block/myFile.cpp'], src_files.keys()) # Check disk disk_src_files = set([f.replace('\\', '/') for f in self._get_files()]) self.assertEqual({'User/Block/myFile.cpp'}, disk_src_files)
def test_src_custom_ignored(self): dest_folder = os.path.join(self.folder, 'User/Block') save(os.path.join(dest_folder, 'myFile.cpp'), '') save(os.path.join(dest_folder, 'ignore.bii'), '*.kk') save(os.path.join(dest_folder, 'subdir1/ignore.bii'), '*.kk1') save(os.path.join(dest_folder, 'subdir1/prueba.kk'), '') save(os.path.join(dest_folder, 'subdir1/prueba.kk1'), '') save(os.path.join(dest_folder, 'subdir1/prueba.kk2'), '') save(os.path.join(dest_folder, 'subdir2/ignore.bii'), '*.kk2') save(os.path.join(dest_folder, 'subdir2/prueba.kk'), '') save(os.path.join(dest_folder, 'subdir2/prueba.kk1'), '') save(os.path.join(dest_folder, 'subdir2/prueba.kk2'), '') save(os.path.join(dest_folder, 'subdir3/ignore.bii'), 'hello.kk3') save(os.path.join(dest_folder, 'subdir3/hello.kk3'), '') save(os.path.join(dest_folder, 'subdir4/subdir5/subdir6/ignore.bii'), 'hello.kk5') save(os.path.join(dest_folder, 'subdir4/subdir5/subdir6/hello.kk5'), '') bii_ignore = BiiIgnore.defaults() src_files = walk_bii_folder(self.folder, bii_ignore, self.biiout) src_files = src_files.keys() self.assertEqual( set([ 'User/Block/myFile.cpp', 'User/Block/ignore.bii', 'User/Block/subdir1/ignore.bii', 'User/Block/subdir1/prueba.kk2', 'User/Block/subdir2/ignore.bii', 'User/Block/subdir2/prueba.kk1', 'User/Block/subdir3/ignore.bii', 'User/Block/subdir4/subdir5/subdir6/ignore.bii' ]), set(src_files)) # Check disk disk_src_files = set([f.replace('\\', '/') for f in self._get_files()]) self.assertEqual( { 'User/Block/myFile.cpp', 'User/Block/subdir1/ignore.bii', 'User/Block/ignore.bii', 'User/Block/subdir2/prueba.kk', 'User/Block/subdir2/prueba.kk2', 'User/Block/subdir1/prueba.kk2', 'User/Block/subdir1/prueba.kk1', 'User/Block/subdir2/prueba.kk1', 'User/Block/subdir1/prueba.kk', 'User/Block/subdir2/ignore.bii', 'User/Block/subdir3/ignore.bii', 'User/Block/subdir3/hello.kk3', 'User/Block/subdir4/subdir5/subdir6/ignore.bii', 'User/Block/subdir4/subdir5/subdir6/hello.kk5' }, disk_src_files)
def test_src_custom_ignored(self): dest_folder = os.path.join(self.folder, 'User/Block') save(os.path.join(dest_folder, 'myFile.cpp'), '') save(os.path.join(dest_folder, 'ignore.bii'), '*.kk') save(os.path.join(dest_folder, 'subdir1/ignore.bii'), '*.kk1') save(os.path.join(dest_folder, 'subdir1/prueba.kk'), '') save(os.path.join(dest_folder, 'subdir1/prueba.kk1'), '') save(os.path.join(dest_folder, 'subdir1/prueba.kk2'), '') save(os.path.join(dest_folder, 'subdir2/ignore.bii'), '*.kk2') save(os.path.join(dest_folder, 'subdir2/prueba.kk'), '') save(os.path.join(dest_folder, 'subdir2/prueba.kk1'), '') save(os.path.join(dest_folder, 'subdir2/prueba.kk2'), '') save(os.path.join(dest_folder, 'subdir3/ignore.bii'), 'hello.kk3') save(os.path.join(dest_folder, 'subdir3/hello.kk3'), '') save(os.path.join(dest_folder, 'subdir4/subdir5/subdir6/ignore.bii'), 'hello.kk5') save(os.path.join(dest_folder, 'subdir4/subdir5/subdir6/hello.kk5'), '') bii_ignore = BiiIgnore.defaults() src_files = walk_bii_folder(self.folder, bii_ignore, self.biiout) src_files = src_files.keys() self.assertEqual(set(['User/Block/myFile.cpp', 'User/Block/ignore.bii', 'User/Block/subdir1/ignore.bii', 'User/Block/subdir1/prueba.kk2', 'User/Block/subdir2/ignore.bii', 'User/Block/subdir2/prueba.kk1', 'User/Block/subdir3/ignore.bii', 'User/Block/subdir4/subdir5/subdir6/ignore.bii']), set(src_files)) # Check disk disk_src_files = set([f.replace('\\', '/') for f in self._get_files()]) self.assertEqual({'User/Block/myFile.cpp', 'User/Block/subdir1/ignore.bii', 'User/Block/ignore.bii', 'User/Block/subdir2/prueba.kk', 'User/Block/subdir2/prueba.kk2', 'User/Block/subdir1/prueba.kk2', 'User/Block/subdir1/prueba.kk1', 'User/Block/subdir2/prueba.kk1', 'User/Block/subdir1/prueba.kk', 'User/Block/subdir2/ignore.bii', 'User/Block/subdir3/ignore.bii', 'User/Block/subdir3/hello.kk3', 'User/Block/subdir4/subdir5/subdir6/ignore.bii', 'User/Block/subdir4/subdir5/subdir6/hello.kk5'}, disk_src_files)
def test_src_default_ignored(self): bii_ignore = BiiIgnore.defaults() save(os.path.join(self.folder, 'User/Block/.myFile.cpp'), '') save(os.path.join(self.folder, 'User/Block/myFile.cpp~'), '') save(os.path.join(self.folder, 'User2/Block2/Path/To/HelloWorld.obj'), '') src_files = walk_bii_folder(self.folder, bii_ignore, self.biiout) src_files = {name: t for name, (t, _) in src_files.iteritems()} self.assertEqual({}, src_files) # Check disk disk_src_files = set([f.replace('\\', '/') for f in self._get_files()]) self.assertEqual({'User/Block/.myFile.cpp', 'User2/Block2/Path/To/HelloWorld.obj', 'User/Block/myFile.cpp~'}, disk_src_files)
def test_src_default_ignored(self): bii_ignore = BiiIgnore.defaults() save(os.path.join(self.folder, 'User/Block/.myFile.cpp'), '') save(os.path.join(self.folder, 'User/Block/myFile.cpp~'), '') save(os.path.join(self.folder, 'User2/Block2/Path/To/HelloWorld.obj'), '') src_files = walk_bii_folder(self.folder, bii_ignore, self.biiout) src_files = {name: t for name, (t, _) in src_files.iteritems()} self.assertEqual({}, src_files) # Check disk disk_src_files = set([f.replace('\\', '/') for f in self._get_files()]) self.assertEqual( { 'User/Block/.myFile.cpp', 'User2/Block2/Path/To/HelloWorld.obj', 'User/Block/myFile.cpp~' }, disk_src_files)
def get_src_files(self): """ scans the SRC_DIR to obtain a {BlockCellName: ByteLoad} """ #scan regular block folder bii_ignore = self._user_cache.bii_ignore result = walk_bii_folder(self._bii_paths.blocks, bii_ignore, self._biiout) # check if the project root has to be scanned self.update_root_block() project_block = self._bii_paths.root_block # scan project root if project_block: result_filter = {bcn: content for bcn, content in result.iteritems() if bcn.block_name != project_block} if len(result) != len(result_filter): self._biiout.warn("Skipping %s block, it already exist in project root" % project_block) result = result_filter anon = walk_anonymous_block(self._bii_paths, bii_ignore, self._biiout, project_block) result.update(anon) return result
def test_block(): return walk_bii_folder(self.folder, bii_ignore, self.biiout)
def test_bad_location(self): bii_ignore = BiiIgnore.defaults() save(os.path.join(self.folder, 'User/mybadFile.cpp'), '') _ = walk_bii_folder(self.folder, bii_ignore, self.biiout) # Check that the system detected misplaced file self.assertIn("WARN: User/mybadFile.cpp is misplaced", str(self.biiout))
def test_block(): return walk_bii_folder(self.folder, bii_ignore, self.biiout)