# Release Notes

These are informal release notes for gabbi since version 1.0.0, highlighting major features and changes. For more detail see the commit logs on GitHub.

## 1.40.0

- When the HTTP response begins with a bad status line, have BadStatusLine be raised from urllib3.

## 1.39.0

- Allow substitutions in the key portion of request and response headers, not just the value.

## 1.38.0

- Remove support for Python 3.3.
- Make handling of fixture-level skips in pytest actually work.

## 1.37.0

- Add `safe_yaml` parameter to `build_tests()`.

## 1.36.0

- `use_prior_test` is added to test Metadata.
- Extensive cleanups in regular expression handling when constructing tests from YAML.

## 1.35.0

JSONPath handling gets two improvements:

- The value side of a `response_json_paths` entry can be loaded from a file using the `<@file.json` syntax also used in Data.
- The key side of a `response_json_paths` entry can use substitutions. This was already true for the value side.

## 1.34.0

Substitutions in `$RESPONSE` handling now preserve numeric types instead of casting to a string. This is useful when servers are expecting strong types and tests want to send response data back to the server.

## 1.33.0

`count` and `delay` test keys allow substitutions. `gabbi.driver.build_tests()` accepts a `verbose` parameter to set test verbosity for an entire session.

## 1.32.0

Better failure reporting when using gabbi-run with multiple files. Test names are based on the files and a summary of failed files is provided at the end of the report.

## 1.31.0

Effectively capture a failure in a fixture and report the traceback. Without this some test runners swallow the error and discovering problems when developing fixtures can be quite challenging.

## 1.30.0

Thanks to Samuel Fekete, tests can use the `$HISTORY` dictionary to refer to any prior test in the same file, not just the one immediately prior, when doing substitutions.

## 1.29.0

Filenames used to read data into tests using the `<@` syntax may now use pathnames relative to the YAML file. See Data.

gabbi-run gains a –verbose parameter to force all tests run in a session to run with verbose set.

When using pytest to load tests, a new mechanism is available which avoids warnings produced in when using a version of pytest greater than `3.0`.

## 1.28.0

When verbosely displaying request and response bodies that are JSON, pretty print for improved readability.

## 1.27.0

Allow gabbi-run to accept multiple filenames as command line arguments instead of reading tests from stdin.

## 1.26.0

Switch from response handlers to Content Handlers to allow more flexible processing of both response _and_ request bodies.

Add inner fixtures for per test fixtures, useful for output capturing.

## 1.25.0

Allow the `test_loader_name` arg to `gabbi.driver.build_tests()` to override the prefix of the pretty printed name of generated tests.

## 1.24.0

String values in JSONPath matches may be wrapped in `/.../`` to be treated as regular expressions.

## 1.23.0

Better documentation of how to run gabbi in a concurrent environment. Improved handling of pytest fixtures and test counts.

## 1.22.0

Add `url` to `gabbi.driver.build_tests()` to use instead of `host`, `port` and `prefix`.

## 1.21.0

Add `require_ssl` to `gabbi.driver.build_tests()` to force use of SSL.

## 1.20.0

Add `$COOKIE` substitution.

## 1.19.1

Correctly support IPV6 hosts.

## 1.19.0

Add `$LAST_URL` substitution.

## 1.17.0

Introduce support for loading and running tests with pytest.

## 1.16.0

Use urllib3 instead of httplib2 for driving HTTP requests.

## 1.13.0

Add sorting and filtering to JSONPath handling.

## 1.11.0

Add the `response_forbidden_headers` to response expectations.

## 1.7.0

Instead of:

    tests:
    - name: a simple get
      url: /some/path
      method: get

1.7.0 also makes it possible to:

    tests:
    - name: a simple get
      GET: /some/path

Any upper case key is treated as a method.

## 1.4.0 and 1.5.0

Enhanced flexibility and colorization when setting tests to be verbose.

## 1.3.0

Adds the `query_parameters` key to request parameters.

## 1.2.0

The start of improvements and extensions to JSONPath handling. In this case the addition of the `len` function.

## 1.1.0

Vastly improved output and behavior in gabbi-run.

## 1.0.0

Version 1 was the first release with a commitment to a stable Test Format. Since then new fields have been added but have not been taken away.

# Contributors

The following people have contributed code to gabbi. Thanks to them. Thanks also to all the people who have made gabbi better by reporting issues and their successes and failures with using gabbi.

- Chris Dent
- FND
- Mehdi Abaakouk
- Tom Viner
- Jason Myers
- Josh Leeb-du Toit
- Duc Truong
- Zane Bitter
- Ryan Spencer
- Kim Raymoure
- Travis Truman
- Samuel Fekete
- Michael McCune
- Imran Hayder
- Julien Danjou
- Danek Duvall
- Marc Abramowitz