Example #1
0
    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)
Example #2
0
    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)
Example #3
0
 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))
Example #4
0
    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
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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
Example #12
0
 def test_block():
     return walk_bii_folder(self.folder, bii_ignore, self.biiout)
Example #13
0
 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))
Example #14
0
 def test_block():
     return walk_bii_folder(self.folder, bii_ignore, self.biiout)