Skip to main content

A simple network listener

Project description

# pytest-listener

Simple JSON listener using TCP that listens for data and stores it in a queue for later retrieval.

## Installation

Install using your favourite package manager:

```bash
pip install pytest-listener
# or..
easy_install pytest-listener
```

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

```python
pytest_plugins = ['pytest_listener']
```

## Basic Test Usage

Here's a test showing the basic functionality:

```python
def test_listener(listener):
data1 = {'foo': 1}
listener.send(some_data)

data2 = {'bar': 2}
listener.send(some_data)

assert listener.receive() == data1
assert listener.receive() == data2

data3 = {'baz': 3}
listener.send(some_data)

# Clear the listening queue - this deletes data3
listener.clear_queue()

data2 = {'qux': 4}
listener.send(some_data)
assert listener.recieve() == data3
```

## 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

Supported by

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