File Release Notes and Changelog

Release Name: 0.23

Release Notes

pgTAP 0.23
==========

pgTAP is a unit testing framework for PostgreSQL written in PL/pgSQL and
PL/SQL. It includes a comprehensive collection of TAP-emitting assertion
functions as well as the ability to integrate with other TAP-emitting test
frameworks. It can also be used in the xUnit testing style.

pgTAP 0.23 includes many improvements and new features, some of which include:

* Added `isa_ok()`.
* Support PostgreSQL 8.5.
* Added `is_empty()` to test that a query returns an empty set (no results).
* Added `collect_tap()`, which makes it easier to run multiple tests in a
  single `SELECT` statement in combination with `skip()`.
* Added `throws_like()`, `throws_ilike()`, `throws_matching()`, and
  `throws_imatching()` to test that an SQL statement throws an error message
  matching a `LIKE` pattern or a regular expression.
* Added `roles_are()`, `types_are()`, `domains_are()`, `enums_are()`,
  `triggers_are()`, `casts_are()`, `operators_are()`, and `columns_are()`.
* Added `domain_type_is()` and `domain_type_isnt()`. Based on an
  implementation by Bob Lunney.
* Added `row_eq()`. It's a 90% solution that requires that `record` values be
  cast to existing composite values. But it should work well even at that.
* Fixed issue with using `SET SESSION AUTHORIZATION` among tests [Kevin Field]

Change Log

0.23 2009-12-18T23:03:39
-------------------------
* Fixed broken Perl detection in `Makefile`.
* Copied OS detection from Perl's `Configure` script to new script,
  `getos.sh`. OS detection should now be much more accurate.
* Fixed `pg_prove` to exit with non-zero status if tests failed, as it works
  better in automated testing environments and consistent with `prove` (fix by
  Darrell Fuhriman).
* Updated documentation of supported environment variables in `bin/pg_prove`.
* Fixed a bug in the function tests where the return value of a function was
  not always consistently formatted. For example, `function_returns()` would
  find "bool" instead of "boolean".
* Added `isa_ok()`.
* Added support for building against 8.5 [Dan Colish].
* Fixed failing test on alpha releases [Jonathan Leto]
* Added `is_empty()` to test that a query returns an empty set (no results).
* Added `collect_tap()`, which makes it easier to run multiple tests in a
  single `SELECT` statement in combination with `skip()`.
* Added `throws_like()`, `throws_ilike()`, `throws_matching()`, and
  `throws_imatching()` to test that an SQL statement throws an error message
  matching a `LIKE` pattern or a regular expression.
* Added `roles_are()`, `types_are()`, `domains_are()`, `enums_are()`,
  `triggers_are()`, `casts_are()`, `operators_are()`, and `columns_are()`.
* Fixed the diagnostic output from `isnt()` and `col_isnt_pk()` when they
  fail. They now more closely matches what Test::More's `isnt()` outputs and
  makes much more sense.
* Added `domain_type_is()` and `domain_type_isnt()`. Based on an
  implementation by Bob Lunney.
* Added variants of `col_is_type()` to allow a schema name to be specified for
  the type.
* Added `display_type()` and replaced all internal use of `format_type()` with
  it. This is so that schemas are always displayed properly.
* Added `row_eq()`. It's a 90% solution that requires that `record` values be
  cast to existing composite values. But it should work well even at that.
* Changed the default descriptions output by `has_operator()`, `has_leftop()`,
  and `has_rightop()` to format the operator names more like the display of
  `regoperator` types.
* Fixed issue with using SET SESSION AUTHORIZATION among tests [Kevin Field]
* Added `display_oper()` so that schemas are always displayed properly when
  comparing operators.

0.22 2009-07-31T00:26:16
-------------------------
* Fixed failing test on 8.4rc2.
* Added result set testing functions. These allow testers to write queries in
  pure SQL and check that their results are as expected. The new functions
  are:
  + `results_eq()`
  + `results_ne()`
  + `set_eq()`
  + `bag_eq()`
  + `set_ne()`
  + `bag_ne()`
  + `set_has()`
  + `bag_has()`
  + `set_hasnt()`
  + `bag_hasnt()`
* Changed some internal queries to use explicit `JOIN`s.
* Fixed capitalization of `TAP::Harness` in the `Makefile`. Thanks to
  Quinn Weaver.
* Fixed a syntax error that caused `uninstall_pgtap.sql` to fail on older
  PostgreSQL versions (fix by Quinn Weaver).
* Modified the summary documentation for the `--schema` and `--match` options
  to `pg_prove` to better reflect that they are for finding xUnit tests,
  not for finding pgTAP functions.
Powered By FusionForge