示例#1
0
    def test_is_methods(self):
        container = self.test_container
        container = self.test_container
        file_with_prefix = stor.join(container, 'analysis.txt')

        # ensure container is created but empty
        container.post()
        self.assertTrue(stor.isdir(container))
        self.assertFalse(stor.isfile(container))
        self.assertTrue(stor.exists(container))
        self.assertFalse(stor.listdir(container))

        folder = stor.join(container, 'analysis')
        subfolder = stor.join(container, 'analysis', 'alignments')
        file_in_folder = stor.join(container, 'analysis', 'alignments',
                                   'bam.bam')
        self.assertFalse(stor.exists(file_in_folder))
        self.assertFalse(stor.isdir(folder))
        self.assertFalse(stor.isdir(folder + '/'))
        with stor.open(file_with_prefix, 'w') as fp:
            fp.write('data\n')
        self.assertFalse(stor.isdir(folder))
        self.assertTrue(stor.isfile(file_with_prefix))

        with stor.open(file_in_folder, 'w') as fp:
            fp.write('blah.txt\n')

        self.assertTrue(stor.isdir(folder))
        self.assertFalse(stor.isfile(folder))
        self.assertTrue(stor.isdir(subfolder))
示例#2
0
        def test_walkfiles(self):
            with NamedTemporaryDirectory(change_dir=True):
                # Make a dataset with files that will match a particular pattern (*.sh)
                # and also empty directories that should be ignored when calling walkfiles
                open('aabc.sh', 'w').close()
                open('aabc', 'w').close()
                os.mkdir('b')
                open('b/c.sh', 'w').close()
                os.mkdir('empty')
                open('b/d', 'w').close()
                open('b/abbbc', 'w').close()
                Path('.').copytree(self.test_dir)

            unfiltered_files = list(self.test_dir.walkfiles())
            self.assertEquals(
                set(unfiltered_files),
                set([
                    stor.join(self.test_dir, 'aabc.sh'),
                    stor.join(self.test_dir, 'aabc'),
                    stor.join(self.test_dir, 'b/c.sh'),
                    stor.join(self.test_dir, 'b/d'),
                    stor.join(self.test_dir, 'b/abbbc'),
                ]))
            prefix_files = list(self.test_dir.walkfiles('*.sh'))
            self.assertEquals(
                set(prefix_files),
                set([
                    stor.join(self.test_dir, 'aabc.sh'),
                    stor.join(self.test_dir, 'b/c.sh'),
                ]))
            double_infix_files = list(self.test_dir.walkfiles('a*b*c'))
            self.assertEquals(
                set(double_infix_files),
                set([
                    stor.join(self.test_dir, 'aabc'),
                    stor.join(self.test_dir, 'b/abbbc'),
                ]))
            suffix_files = list(self.test_dir.walkfiles('a*'))
            self.assertEquals(
                set(suffix_files),
                set([
                    stor.join(self.test_dir, 'aabc.sh'),
                    stor.join(self.test_dir, 'aabc'),
                    stor.join(self.test_dir, 'b/abbbc'),
                ]))
            # should still *make* an empty directory
            assert stor.exists(stor.join(self.test_dir, 'empty'))