Skip to main content

Git repository fixture for py.test

Project description

# 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-git-1.2.2.tar.gz (4.3 kB view details)

Uploaded Source

Built Distributions

pytest_git-1.2.2-py2.7.egg (3.4 kB view details)

Uploaded Egg

pytest_git-1.2.2-py2-none-any.whl (5.8 kB view details)

Uploaded Python 2

File details

Details for the file pytest-git-1.2.2.tar.gz.

File metadata

  • Download URL: pytest-git-1.2.2.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pytest-git-1.2.2.tar.gz
Algorithm Hash digest
SHA256 9d16bb8600d8fb8306358049c966e154274c68ab2365f1f75451585081a034b9
MD5 0f9a629ae0fe646de92f5a8996724bfc
BLAKE2b-256 9961a9077047e068329b4c1be2c3be6bb79f6dbae7b850dd5581bcb0483f1109

See more details on using hashes here.

File details

Details for the file pytest_git-1.2.2-py2.7.egg.

File metadata

File hashes

Hashes for pytest_git-1.2.2-py2.7.egg
Algorithm Hash digest
SHA256 16dd64b77eeec7245e36ccacb87eee43f222e1709a17d320a90f6a1f05f83174
MD5 6377b31c880a34971acba944a8d95c4a
BLAKE2b-256 ba5244b0fe5fc529e28ccde5e829969195c3a64138747124b410e0bfe35d0b0d

See more details on using hashes here.

File details

Details for the file pytest_git-1.2.2-py2-none-any.whl.

File metadata

File hashes

Hashes for pytest_git-1.2.2-py2-none-any.whl
Algorithm Hash digest
SHA256 7087e276ea08bf53f5bc7a94f016449f540f799081d495a2ceecb300e5d74a54
MD5 24fd90fccdf40889f7be1d5519c94afc
BLAKE2b-256 646afb4e8f524af4e3607ebff350a56e1d4b9e15161bb36c93f64bf4f1c331c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page