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

README.md

Pytest GIT Fixture

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

Installation

Install using your favourite package installer:

    pip install pytest-git
    # or
    easy_install pytest-git

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

    pytest_plugins = ['pytest_git']

Usage

This plugin is a thin wrapper around the excellent GitPython library (see http://gitpython.readthedocs.org/en/stable/). 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.py path object (see https://pathpy.readthedocs.io/)
    path = git_repo.workspace
    file = path / 'hello.txt'
    file.write_text('hello world!')
    
    # We can run commands relative to the working directory
    git_repo.run('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.