# HG changeset patch # User RhodeCode Admin # Date 2023-07-27 08:22:34 # Node ID 50a51f17140b2943b9a8ad1901c5c9e8f22da371 # Parent dc99fc1e3771bb6fe3167027bd59d752361d880b archival: added tests at subpath generation of archivals diff --git a/rhodecode/apps/repository/tests/test_repo_files.py b/rhodecode/apps/repository/tests/test_repo_files.py --- a/rhodecode/apps/repository/tests/test_repo_files.py +++ b/rhodecode/apps/repository/tests/test_repo_files.py @@ -72,6 +72,7 @@ def route_path(name, params=None, **kwar 'repo_files_edit_file': '/{repo_name}/edit_file/{commit_id}/{f_path}', 'repo_files_update_file': '/{repo_name}/update_file/{commit_id}/{f_path}', 'repo_files_add_file': '/{repo_name}/add_file/{commit_id}/{f_path}', + 'repo_files_upload_file': '/{repo_name}/upload_file/{commit_id}/{f_path}', 'repo_files_create_file': '/{repo_name}/create_file/{commit_id}/{f_path}', 'repo_nodetree_full': '/{repo_name}/nodetree_full/{commit_id}/{f_path}', 'repo_nodetree_full:default_path': '/{repo_name}/nodetree_full/{commit_id}/', @@ -564,7 +565,31 @@ class TestRepositoryArchival(object): ] for header in headers: - assert header in response.headers.items() + assert header in list(response.headers.items()) + + def test_archival_at_path(self, backend): + backend.enable_downloads() + commit = backend.repo.get_commit(commit_idx=190) + at_path = 'vcs' + + for a_type, content_type, extension in settings.ARCHIVE_SPECS: + path_sha = get_path_sha(at_path) + filename = get_archive_name(backend.repo_name, commit_sha=commit.short_id, ext=extension, path_sha=path_sha) + + fname = commit.raw_id + extension + response = self.app.get( + route_path('repo_archivefile', + repo_name=backend.repo_name, + fname=fname, params={'at_path': at_path})) + + assert response.status == '200 OK' + headers = [ + ('Content-Disposition', 'attachment; filename=%s' % filename), + ('Content-Type', '%s' % content_type), + ] + + for header in headers: + assert header in list(response.headers.items()) @pytest.mark.parametrize('arch_ext',[ 'tar', 'rar', 'x', '..ax', '.zipz', 'tar.gz.tar']) diff --git a/rhodecode/apps/repository/views/repo_files.py b/rhodecode/apps/repository/views/repo_files.py --- a/rhodecode/apps/repository/views/repo_files.py +++ b/rhodecode/apps/repository/views/repo_files.py @@ -315,7 +315,7 @@ class RepoFilesView(RepoAppView): @region.conditional_cache_on_arguments(namespace=cache_namespace_uid, condition=cache_on) def compute_file_tree(_name_hash, _repo_id, _commit_id, _f_path, _full_load, _at_rev): - log.debug('Generating cached file tree at ver:%s for repo_id: %s, %s, %s', + log.debug('Generating cached file tree at for repo_id: %s, %s, %s', _repo_id, _commit_id, _f_path) c.full_load = _full_load diff --git a/rhodecode/tests/vcs/test_archives.py b/rhodecode/tests/vcs/test_archives.py --- a/rhodecode/tests/vcs/test_archives.py +++ b/rhodecode/tests/vcs/test_archives.py @@ -133,8 +133,9 @@ class TestArchives(BackendTestMixin): archive_node = tmp_path / 'archive-node' archive_node.touch() - archive_lnk = self.tip.archive_repo(str(archive_node), kind='zip', - archive_dir_name='repo', write_metadata=True, cache_config=d_cache_config) + archive_lnk = self.tip.archive_repo( + str(archive_node), kind='zip', + archive_dir_name='repo', write_metadata=True, cache_config=d_cache_config) zip_file = zipfile.ZipFile(str(archive_lnk)) metafile = zip_file.read('repo/.archival.txt')