def test_subfolder_metadata(self, subfolder_metadata):
        data = FileSystemFolderMetadata(subfolder_metadata, '/')
        assert data.path == '/folder1/folder2/'
        assert data.name == 'folder2'
        assert data.provider == 'filesystem'
        assert data.build_path('') == '/'
        assert data.materialized_path == '/folder1/folder2/'
        assert data.is_folder is True
        assert data.children is None
        assert data.kind == 'folder'
        assert data.etag is None
        assert data.serialized() == {
            'extra': {},
            'kind': 'folder',
            'name': 'folder2',
            'path': '/folder1/folder2/',
            'provider': 'filesystem',
            'materialized': '/folder1/folder2/',
            'etag': '6a2b72b88f67692ff6f4cc3a52798cdc54a6e7c7e6dcbf8463fcb5105b6b949e'
        }

        assert data.json_api_serialized('7ycmyr') == {
            'id': 'filesystem/folder1/folder2/',
            'type': 'files',
            'attributes': {
                'extra': {},
                'kind': 'folder',
                'name': 'folder2',
                'path': '/folder1/folder2/',
                'provider': 'filesystem',
                'materialized': '/folder1/folder2/',
                'etag': '6a2b72b88f67692ff6f4cc3a52798cdc54a6e7c7e6dcbf8463fcb5105b6b949e',
                'resource': '7ycmyr',
                'size': None,
                'sizeInt': None
            },
            'links': {
                'move': 'http://localhost:7777/v1/resources/7ycmyr/providers/filesystem/'
                        'folder1/folder2/',
                'upload': ('http://localhost:7777/v1/resources/'
                    '7ycmyr/providers/filesystem/folder1/folder2/?kind=file'),
                'delete': 'http://localhost:7777/v1/resources/7ycmyr/providers/filesystem/'
                          'folder1/folder2/',
                'new_folder': ('http://localhost:7777/v1/resources/'
                    '7ycmyr/providers/filesystem/folder1/folder2/?kind=folder')
            }
        }

        assert data._json_api_links('cn42d') == {
            'move': 'http://localhost:7777/v1/resources/cn42d/providers/filesystem'
                    '/folder1/folder2/',
            'upload': ('http://localhost:7777/v1/resources/'
                'cn42d/providers/filesystem/folder1/folder2/?kind=file'),
            'delete': 'http://localhost:7777/v1/resources/cn42d/providers/filesystem'
                      '/folder1/folder2/',
            'new_folder': ('http://localhost:7777/v1/resources/'
                'cn42d/providers/filesystem/folder1/folder2/?kind=folder')
        }
示例#2
0
    def metadata(self, path, **kwargs):
        if path.is_dir:
            if not os.path.exists(path.full_path) or not os.path.isdir(
                    path.full_path):
                raise exceptions.MetadataError(
                    'Could not retrieve folder \'{0}\''.format(path),
                    code=404,
                )

            ret = []
            for item in os.listdir(path.full_path):
                if os.path.isdir(os.path.join(path.full_path, item)):
                    metadata = self._metadata_folder(path, item)
                    ret.append(
                        FileSystemFolderMetadata(metadata,
                                                 self.folder).serialized())
                else:
                    metadata = self._metadata_file(path, item)
                    ret.append(
                        FileSystemFileMetadata(metadata,
                                               self.folder).serialized())
            return ret
        else:
            if not os.path.exists(path.full_path) or os.path.isdir(
                    path.full_path):
                raise exceptions.MetadataError(
                    'Could not retrieve file \'{0}\''.format(path),
                    code=404,
                )

            metadata = self._metadata_file(path)
            return FileSystemFileMetadata(metadata, self.folder).serialized()
示例#3
0
    def test_subfolder_metadata(self, subfolder_metadata):
        data = FileSystemFolderMetadata(subfolder_metadata, '/')
        assert data.path == '/folder1/folder2/'
        assert data.name == 'folder2'
        assert data.provider == 'filesystem'
        assert data.build_path('') == '/'
        assert data.materialized_path == '/folder1/folder2/'
        assert data.is_folder is True
        assert data.children is None
        assert data.kind == 'folder'
        assert data.etag is None
        assert data.serialized() == {
            'extra': {},
            'kind':
            'folder',
            'name':
            'folder2',
            'path':
            '/folder1/folder2/',
            'provider':
            'filesystem',
            'materialized':
            '/folder1/folder2/',
            'etag':
            '6a2b72b88f67692ff6f4cc3a52798cdc54a6e7c7e6dcbf8463fcb5105b6b949e'
        }

        assert data.json_api_serialized('7ycmyr') == {
            'id': 'filesystem/folder1/folder2/',
            'type': 'files',
            'attributes': {
                'extra': {},
                'kind': 'folder',
                'name': 'folder2',
                'path': '/folder1/folder2/',
                'provider': 'filesystem',
                'materialized': '/folder1/folder2/',
                'etag':
                '6a2b72b88f67692ff6f4cc3a52798cdc54a6e7c7e6dcbf8463fcb5105b6b949e',
                'resource': '7ycmyr',
                'size': None
            },
            'links': {
                'move':
                'http://localhost:7777/v1/resources/7ycmyr/providers/filesystem/'
                'folder1/folder2/',
                'upload':
                ('http://localhost:7777/v1/resources/'
                 '7ycmyr/providers/filesystem/folder1/folder2/?kind=file'),
                'delete':
                'http://localhost:7777/v1/resources/7ycmyr/providers/filesystem/'
                'folder1/folder2/',
                'new_folder':
                ('http://localhost:7777/v1/resources/'
                 '7ycmyr/providers/filesystem/folder1/folder2/?kind=folder')
            }
        }

        assert data._json_api_links('cn42d') == {
            'move':
            'http://localhost:7777/v1/resources/cn42d/providers/filesystem'
            '/folder1/folder2/',
            'upload':
            ('http://localhost:7777/v1/resources/'
             'cn42d/providers/filesystem/folder1/folder2/?kind=file'),
            'delete':
            'http://localhost:7777/v1/resources/cn42d/providers/filesystem'
            '/folder1/folder2/',
            'new_folder':
            ('http://localhost:7777/v1/resources/'
             'cn42d/providers/filesystem/folder1/folder2/?kind=folder')
        }