Files
@ eb486c0c3114
Branch filter:
Location: kallithea/kallithea/tests/vcs/test_workdirs.py - annotation
eb486c0c3114
3.1 KiB
text/x-python
scm: refactor install_git_hooks
Rename, simplify, and negate some logic to make the flow more readable to me
and give better logging.
For example, "force_create" were more about "force overwrite". Calling it
"force" is more precise.
Rename, simplify, and negate some logic to make the flow more readable to me
and give better logging.
For example, "force_create" were more about "force overwrite". Calling it
"force" is more precise.
d1addaf7a91e 5c9eb37bdec4 4c46ebbcf814 5c9eb37bdec4 d1addaf7a91e 12ae08b2fe3f d1addaf7a91e d1addaf7a91e 12ae08b2fe3f d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e e63bcce18fef e63bcce18fef d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e e63bcce18fef e63bcce18fef d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e 4c46ebbcf814 d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e e63bcce18fef e63bcce18fef d1addaf7a91e d1addaf7a91e 4c46ebbcf814 d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e e63bcce18fef e63bcce18fef d1addaf7a91e d1addaf7a91e 4c46ebbcf814 d1addaf7a91e 4c46ebbcf814 d1addaf7a91e 4a6cb94a33c8 d1addaf7a91e 4c46ebbcf814 d1addaf7a91e d1addaf7a91e d1addaf7a91e d1addaf7a91e 4c46ebbcf814 4c46ebbcf814 d1addaf7a91e d1addaf7a91e e63bcce18fef d1addaf7a91e d1addaf7a91e 4c46ebbcf814 d1addaf7a91e d1addaf7a91e 4c46ebbcf814 d1addaf7a91e d1addaf7a91e 45a281a0f36f 45a281a0f36f 45a281a0f36f 45a281a0f36f 45a281a0f36f 45a281a0f36f | import datetime
import pytest
from kallithea.lib.vcs.nodes import FileNode
from kallithea.tests.vcs.base import _BackendTestMixin
class WorkdirTestCaseMixin(_BackendTestMixin):
@classmethod
def _get_commits(cls):
commits = [
{
'message': 'Initial commit',
'author': 'Joe Doe <joe.doe@example.com>',
'date': datetime.datetime(2010, 1, 1, 20),
'added': [
FileNode('foobar', content='Foobar'),
FileNode('foobar2', content='Foobar II'),
FileNode('foo/bar/baz', content='baz here!'),
],
},
{
'message': 'Changes...',
'author': 'Jane Doe <jane.doe@example.com>',
'date': datetime.datetime(2010, 1, 1, 21),
'added': [
FileNode('some/new.txt', content='news...'),
],
'changed': [
FileNode('foobar', 'Foobar I'),
],
'removed': [],
},
]
return commits
def test_get_branch_for_default_branch(self):
assert self.repo.workdir.get_branch() == self.repo.DEFAULT_BRANCH_NAME
def test_get_branch_after_adding_one(self):
self.imc.add(FileNode('docs/index.txt',
content='Documentation\n'))
self.imc.commit(
message='New branch: foobar',
author='joe',
branch='foobar',
)
assert self.repo.workdir.get_branch() == self.default_branch
def test_get_changeset(self):
old_head = self.repo.get_changeset()
self.imc.add(FileNode('docs/index.txt',
content='Documentation\n'))
head = self.imc.commit(
message='New branch: foobar',
author='joe',
branch='foobar',
)
assert self.repo.workdir.get_branch() == self.default_branch
self.repo.workdir.checkout_branch('foobar')
assert self.repo.workdir.get_changeset() == head
# Make sure that old head is still there after update to default branch
self.repo.workdir.checkout_branch(self.default_branch)
assert self.repo.workdir.get_changeset() == old_head
def test_checkout_branch(self):
from kallithea.lib.vcs.exceptions import BranchDoesNotExistError
# first, 'foobranch' does not exist.
with pytest.raises(BranchDoesNotExistError):
self.repo.workdir.checkout_branch(branch='foobranch')
# create new branch 'foobranch'.
self.imc.add(FileNode('file1', content='blah'))
self.imc.commit(message='asd', author='john', branch='foobranch')
# go back to the default branch
self.repo.workdir.checkout_branch()
assert self.repo.workdir.get_branch() == self.backend_class.DEFAULT_BRANCH_NAME
# checkout 'foobranch'
self.repo.workdir.checkout_branch('foobranch')
assert self.repo.workdir.get_branch() == 'foobranch'
class TestGitBranch(WorkdirTestCaseMixin):
backend_alias = 'git'
class TestHgBranch(WorkdirTestCaseMixin):
backend_alias = 'hg'
|