Exemplo n.º 1
0
def test_folder_diff_from_commit(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs/recipes']
    commit = list(folder.history)[1]
    diff = folder.diff(commit)
    assert isinstance(diff, pygit2.Diff)
    assert 'index 310e236..6026a23 100644' in diff.patch
Exemplo n.º 2
0
def test_commit(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs/recipes']
    commit = folder.last_commit
    assert isinstance(commit, pygit2.Commit)
    message = commit.message
    assert message.startswith('Fix indent error')
Exemplo n.º 3
0
def test_repository_diff_between_commits(gitrepo):
    repo = gitdict.Repository(gitrepo)
    commit1 = list(repo.history)[1]
    commit2 = list(repo.history)[2]
    diff = repo.diff(commit1, commit2)
    assert isinstance(diff, pygit2.Diff)
    assert 'index 1fa6a72..0d96930 100644' in diff.patch
Exemplo n.º 4
0
def test_file_diff_from_commit(gitrepo):
    repo = gitdict.Repository(gitrepo)
    gf = repo['docs/recipes/git-show.rst']
    commit = list(gf.history)[1]
    diff = gf.diff(commit)
    assert isinstance(diff, pygit2.Patch)
    assert diff.line_stats == (15, 9, 2)
Exemplo n.º 5
0
def test_folder_walk(gitrepo):
    repo = gitdict.Repository(gitrepo)
    walker = repo.walk()
    parent, folders, files = next(walker)
    assert parent == repo
    for f in folders:
        assert isinstance(f, gitdict.Folder)
    for f in files:
        assert isinstance(f, gitdict.File)
    paths = [f.git_path for f in folders]
    assert paths == ['docs', 'misc', 'pygit2', 'src', 'test']
    paths = [f.git_path for f in files]
    expected = [
        '.gitattributes', '.gitignore', '.mailmap', '.pep8', '.travis.sh',
        '.travis.yml', 'COPYING', 'README.rst', 'TODO.txt', 'setup.py'
    ]
    assert paths == expected
    folder1 = folders[0]
    parent2, folders, files = next(walker)
    assert parent2 == folder1
    paths = [f.git_path for f in folders]
    assert paths == ['docs/_static', 'docs/_themes', 'docs/recipes']
    paths = [f.git_path for f in files]
    expected = [
        'docs/Makefile', 'docs/blame.rst', 'docs/conf.py', 'docs/config.rst',
        'docs/development.rst', 'docs/diff.rst', 'docs/features.rst',
        'docs/general.rst', 'docs/index.rst', 'docs/install.rst',
        'docs/log.rst', 'docs/merge.rst', 'docs/objects.rst', 'docs/oid.rst',
        'docs/recipes.rst', 'docs/references.rst', 'docs/remotes.rst',
        'docs/repository.rst', 'docs/revparse.rst', 'docs/settings.rst',
        'docs/submodule.rst', 'docs/working-copy.rst'
    ]
    assert paths == expected
Exemplo n.º 6
0
def test_folder_contains(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    assert 'recipes' in folder
    assert 'Makefile' in folder
    assert 'recipes/git-init.rst' in folder
    assert 'unknown' not in folder
Exemplo n.º 7
0
def test_file_last_commit(gitrepo):
    repo = gitdict.Repository(gitrepo)
    gf = repo['README.rst']
    commit = gf.last_commit
    assert isinstance(gf.last_commit, pygit2.Commit)
    message = commit.message
    assert message.startswith("Release 0.23.2")
Exemplo n.º 8
0
def test_fodler_equals(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder1 = repo['docs']
    folder2 = repo['docs']
    assert id(folder1) != id(folder2)
    assert folder1 == folder2
    assert ('x' == folder1) == False
Exemplo n.º 9
0
def test_folder_values(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    content = docs_folder_content.copy()
    for object in folder.values():
        cls = content.pop(object.__name__)
        assert isinstance(object, cls)
    assert len(content) == 0
Exemplo n.º 10
0
def test_folder_items(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    content = docs_folder_content.copy()
    for name, object in folder.items():
        cls = content.pop(name)
        assert isinstance(object, cls)
    assert len(content) == 0
Exemplo n.º 11
0
def test_folder_diff_between_commits(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs/recipes']
    commit1 = list(folder.history)[1]
    commit2 = list(folder.history)[3]
    diff = folder.diff(commit1, commit2)
    assert isinstance(diff, pygit2.Diff)
    assert 'index 0000000..f8ea5ca' in diff.patch
Exemplo n.º 12
0
def test_file_diff_between_commits(gitrepo):
    repo = gitdict.Repository(gitrepo)
    gf = repo['docs/recipes/git-show.rst']
    commit1 = list(gf.history)[1]
    commit2 = list(gf.history)[2]
    diff = gf.diff(commit1, commit2)
    assert isinstance(diff, pygit2.Patch)
    assert diff.line_stats == (14, 4, 4)
Exemplo n.º 13
0
def test_file_init(gitrepo):
    repo = gitdict.Repository(gitrepo)
    gf = repo['README.rst']
    assert gf.__name__ == 'README.rst'
    assert gf.__parent__ == repo
    assert gf._repository == repo
    assert isinstance(gf._pg2_blob, pygit2.Blob)
    assert str(gf._pg2_blob.id) == '4bdf2944e2188cdb8427749317c147239dc212c7'
Exemplo n.º 14
0
def test_folder_init(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    assert folder.__name__ == 'docs'
    assert folder.__parent__ == repo
    assert folder._repository == repo
    assert isinstance(folder._pg2_tree, pygit2.Tree)
    assert str(
        folder._pg2_tree.id) == '67336d9821cdb3209177d38a198e20a51eef5cca'
Exemplo n.º 15
0
def test_repository_initialization_bare_head(gitrepo):
    repo = gitdict.Repository(gitrepo)
    assert isinstance(repo._pg2_repo, pygit2.Repository)
    assert isinstance(repo.last_commit, pygit2.Commit)
    assert str(
        repo.last_commit.id) == '7a8474cd44e4aaaa52ad9163d7d1bf971255662f'
    assert isinstance(repo._pg2_tree, pygit2.Tree)
    assert str(repo._pg2_tree.id) == 'bfd1938cd1ee3c37b1cc3170c95821deac9ae0ce'
    assert repo.branch == 'master'
    assert os.path.realpath(repo.path) == os.path.realpath(gitrepo)
Exemplo n.º 16
0
def test_file_iterator(gitrepo):
    repo = gitdict.Repository(gitrepo)
    gf = repo['docs/recipes/git-show.rst']
    lines = [
        '*' * 70, 'git-show', '*' * 70, '', '-' * 70, 'Showing a commit',
        '-' * 70, '', '.. code-block:: bash'
    ]
    expected = [l + '\n' for l in lines]
    result = [line for line in gf]
    assert result[:9] == expected
Exemplo n.º 17
0
def test_file_history(gitrepo):
    repo = gitdict.Repository(gitrepo)
    gf = repo['docs/recipes/git-show.rst']
    expected = [
        'git-show recipe: Add the easy Python 3 way',
        'Clarify comments in git-show recipe', 'Correct git-show recipe',
        'Update git-show recipe', 'restructured recipes'
    ]
    for i, commit in enumerate(gf.history):
        assert isinstance(commit, pygit2.Commit)
        assert commit.message.startswith(expected[i])
    assert len(expected) == len(list(gf.history))
Exemplo n.º 18
0
def test_history(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs/recipes']
    expected = [
        'Fix indent error', 'Add a recipe for git clone --mirror',
        'Cherry-pick recipe: clean up after picking',
        'Add git-cherry-pick recipes',
        'git-show recipe: Add the easy Python 3 way',
        'Clarify comments in git-show recipe', 'Correct git-show recipe',
        'Update git-show recipe', 'Remove obsolete git-branch recipe',
        'docs: clarify git-init recipe', 'docs: adjust to recent changes',
        'Doc fixes: change head.oid to head.target in examples',
        'restructured recipes'
    ]
    for i, commit in enumerate(folder.history):
        assert isinstance(commit, pygit2.Commit)
        assert commit.message.startswith(expected[i])
    assert len(list(folder.history)) == len(expected)
Exemplo n.º 19
0
def test_folder_get_default_on_unknown_child(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    child = folder.get('unknown_child', 'default_value')
    assert not isinstance(child, gitdict.File)
    assert child == 'default_value'
Exemplo n.º 20
0
def test_folder_get_path(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    child = folder.get('recipes/git-init.rst')
    assert isinstance(child, gitdict.File)
    assert child.__parent__ == folder['recipes']
Exemplo n.º 21
0
def test_folder_get_file(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    child = folder.get('Makefile')
    assert isinstance(child, gitdict.File)
    assert child.__parent__ == folder
Exemplo n.º 22
0
def test_folder_get_folder(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    child = folder.get('recipes')
    assert isinstance(child, gitdict.Folder)
    assert child.__parent__ == folder
Exemplo n.º 23
0
def test_folder_git_path(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']['recipes']
    assert folder.git_path == 'docs/recipes'
Exemplo n.º 24
0
def test_repository_history(gitrepo):
    repo = gitdict.Repository(gitrepo)
    history = repo.history
    for commit in history:
        assert isinstance(commit, pygit2.Commit)
    assert len(history) == 1242
Exemplo n.º 25
0
def test_repository_diff_from_commit(gitrepo):
    repo = gitdict.Repository(gitrepo)
    commit = list(repo.history)[1]
    diff = repo.diff(commit)
    assert isinstance(diff, pygit2.Diff)
    assert 'index 94f7626..57dad00 100644' in diff.patch
Exemplo n.º 26
0
def test_repository_diff_raises_error(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs/recipes']
    gf = repo['docs/recipes/git-show.rst']
    with pytest.raises(gitdict.GitDictError):
        assert folder.diff(gf)
Exemplo n.º 27
0
def test_folder_keys(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    assert sorted(folder.keys()) == sorted(docs_folder_content.keys())
Exemplo n.º 28
0
def test_folder_iter(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    names = [name for name in folder]
    assert sorted(names) == sorted(docs_folder_content.keys())
Exemplo n.º 29
0
def test_folder_len(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    assert len(folder) == 25
Exemplo n.º 30
0
def test_fodler_not_equals(gitrepo):
    repo = gitdict.Repository(gitrepo)
    folder = repo['docs']
    assert folder != 'x'
    assert folder != repo
    assert folder != folder['recipes']