# Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License, version 3 # (only), as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # This program is dual-licensed. If you wish to learn more about the # RhodeCode Enterprise Edition, including its added features, Support services, # and proprietary license terms, please see https://rhodecode.com/licenses/ """ Test suite for making push/pull operations, on specially modified INI files """ import os import pytest from rhodecode.lib.vcs.backends.git.repository import GitRepository from rhodecode.lib.vcs.nodes import FileNode from rhodecode.tests import GIT_REPO from rhodecode.tests.vcs_operations import Command from .test_vcs_operations_git import _check_proper_clone, _check_proper_git_push @pytest.mark.usefixtures( "init_pyramid_app", "repo_group_repos", "disable_anonymous_user", "disable_locking", ) class TestVCSOperationsOnCustomIniConfig(object): def test_git_clone_with_small_push_buffer(self, vcs_backend_git, rcstack, tmpdir): clone_url = rcstack.repo_clone_url(GIT_REPO) cmd = Command(tmpdir.strpath) stdout, stderr = cmd.execute( 'git -c http.postBuffer=1024 clone', clone_url, tmpdir.strpath) _check_proper_clone(stdout, stderr, 'git') cmd.assert_returncode_success() def test_git_push_with_small_push_buffer(self, vcs_backend_git, rcstack, tmpdir): empty_repo = vcs_backend_git.create_repo() clone_url = rcstack.repo_clone_url(empty_repo.repo_name) cmd = Command(tmpdir.strpath) cmd.execute('git clone', clone_url) repo = GitRepository(os.path.join(tmpdir.strpath, empty_repo.repo_name)) repo.in_memory_commit.add(FileNode(b'readme.md', content=b'## Hello')) repo.in_memory_commit.commit( message='Commit on branch Master', author='Automatic test ', branch='master') repo_cmd = Command(repo.path) stdout, stderr = repo_cmd.execute( f'git -c http.postBuffer=1024 push --verbose {clone_url} master') _check_proper_git_push(stdout, stderr, branch='master')