Skip to content
Branch: master
Find file History
eeaston Created Windows build on Travis. The build uses the classifiers to de…
…termine whether or not to run the build on Windows.
Latest commit 08dcd93 Nov 29, 2019

Pytest GIT Fixture

Creates an empty Git repository for testing that cleans up after itself on teardown.


Install using your favourite package installer:

    pip install pytest-git
    # or
    easy_install pytest-git

Enable the fixture explicitly in your tests or (not required when using setuptools entry points):

    pytest_plugins = ['pytest_git']


This plugin is a thin wrapper around the excellent GitPython library (see Here's a noddy test case that shows it working:

def test_git_repo(git_repo):
    # The fixture derives from `workspace` in `pytest-shutil`, so they contain 
    # a handle to the path object (see
    path = git_repo.workspace
    file = path / 'hello.txt'
    file.write_text('hello world!')
    # We can run commands relative to the working directory'git add hello.txt')
    # It's better to use the GitPython api directly - the 'api' attribute is 
    # a handle to the repository object.
    git_repo.api.index.commit("Initial commit")
    # The fixture has a URI property you can use in downstream systems
    assert git_repo.uri.startswith('file://')
You can’t perform that action at this time.