Skip to main content
# Pytest GIT Fixture

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

## Installation

Install using your favourite package installer:
```bash
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):

```python
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:

```python
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://pythonhosted.org/path.py)
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://')
```

## Changelog

### 1.2.2 (2016-10-2r70)
* Python 3 compatibility across most of the modules
* Fixed deprecated Path.py imports (Thanks to Bryan Moscon)
* Fixed deprecated multicall in pytest-profiling (Thanks to Paul van der Linden for PR)
* Added devpi-server fixture to create an index per test function
* Added missing licence file
* Split up httpd server fixture config so child classes can override loaded modules easier
* Added 'preserve_sys_path' argument to TestServer base class which exports the current python sys.path to subprocesses.
* Updated httpd, redis and jenkins runtime args and paths to current Ubuntu spec
* Ignore errors when tearing down workspaces to avoid race conditions in 'shutil.rmtree' implementation

### 1.2.1 (2016-3-1)
* Fixed pytest-verbose-parametrize for latest version of py.test

### 1.2.0 (2016-2-19)
* New plugin: git repository fixture

### 1.1.1 (2016-2-16)
* pytest-profiling improvement: escape illegal characters in .prof files (Thanks to Aarni Koskela for the PR)

### 1.1.0 (2016-2-15)

* New plugin: devpi server fixture
* pytest-profiling improvement: overly-long .prof files are saved as the short hash of the test name (Thanks to Vladimir Lagunov for PR)
* Changed default behavior of workspace.run() to not use a subshell for security reasons
* Corrected virtualenv.run() method to handle arguments the same as the parent method workspace.run()
* Removed deprecated '--distribute' from virtualenv args

### 1.0.1 (2015-12-23)

* Packaging bugfix

### 1.0.0 (2015-12-21)

* Initial public release

Metadata

Release files for pytest-git 1.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-git 1.2.2
File Size Uploaded
pytest-git-1.2.2.tar.gz 4.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pytest-git 1.2.2
File Interpreter ABI Platform
pytest_git-1.2.2-py2.7.egg Legacy Egg format - - Details
pytest_git-1.2.2-py2-none-any.whl Python 2 none any Details

Total release size: 13.5 kB

Release files / pytest-git-1.2.2.tar.gz

Download URL pytest-git-1.2.2.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9d16bb8600d8fb8306358049c966e154274c68ab2365f1f75451585081a034b9
BLAKE2b-256 checksum
How to use checksums
9961a9077047e068329b4c1be2c3be6bb79f6dbae7b850dd5581bcb0483f1109
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pytest_git-1.2.2-py2.7.egg

Download URL pytest_git-1.2.2-py2.7.egg
Size 3.4 kB
Tags Egg
SHA-256 checksum
How to use checksums
16dd64b77eeec7245e36ccacb87eee43f222e1709a17d320a90f6a1f05f83174
BLAKE2b-256 checksum
How to use checksums
ba5244b0fe5fc529e28ccde5e829969195c3a64138747124b410e0bfe35d0b0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pytest_git-1.2.2-py2-none-any.whl

Download URL pytest_git-1.2.2-py2-none-any.whl
Size 5.8 kB
Tags Python 2
SHA-256 checksum
How to use checksums
7087e276ea08bf53f5bc7a94f016449f540f799081d495a2ceecb300e5d74a54
BLAKE2b-256 checksum
How to use checksums
646afb4e8f524af4e3607ebff350a56e1d4b9e15161bb36c93f64bf4f1c331c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.8.0

2 release files

1.7.0

4 release files

1.6.0

3 release files

1.4.0

3 release files

1.3.0

3 release files

1.2.11

3 release files

This release

1.2.2 This release

3 release files

1.2.0

3 release files

1.1.2

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page