nitrate-notes man page

Release Notes — python-nitrate release notes

Python-Nitrate 1.0

There have been many substantial changes in the python-nitrate implementation and a bunch of new features have been added. Many thanks to Filip Holec for contributing substantial part of the new caching implementation. Here's the summary of important changes:

Improved Performance

  • Common caching support for all Nitrate classes
  • Persistent cache implementation, MultiCall support
  • Cache().update() support for multicall slicing
  • Experimental support for fetching data from Teiid

New Object Attributes

  • TestPlan.owner attribute holding the default owner
  • TestPlan.sortkey() for getting/setting test case order
  • TestRun.testcases for easy iteration over linked cases
  • TestRun.started and TestRun.finished timestamps
  • TestCase.created for accessing the creation date

Other Features

  • Huge api module refactored into several modules
  • New utility functions header() and sliced() added
  • Support for colored logging, new custom log levels
  • Plain authentication supported in addition to Kerberos
  • Improved man pages, module documentation and examples

Under the Hood

  • The big cleanup of ininitialization and caching
  • TestPlan.testruns reimplemented using PlanRuns container
  • TestRun.caseruns and TestRun.testcases containers
  • Test case containers iterate over sorted test cases
  • Bugs reimplemented with containers and caching
  • Store the initial object dict as _inject for future use

Test Suite

  • New unit test cases implemented, many improved
  • Added support for performance tests (--performance)
  • Overall test summary printed at the end of testing

API Changes

Several backward-incompatible changes had to be introduced in order to improve the performance and because of necessary cleanup. Below you can find the list of differences in the module API.

Object id cannot be provided as string:

- TestCase("1234")
+ TestCase(1234)

Tags are now regular objects and should be used instead of strings (although for adding/removing and presence checking backward compatiblity is silently preserved):

- testcase.tags.add("TestParametrized")
+ testcase.tags.add(Tag("TestParametrized"))
- "TestParametrized" in testcase.tags
+ Tag("TestParametrized") in testcase.tags

Default version has been moved from Product into TestPlan class. Placing the default product version inside the Product class was by mistake. The TestPlan class has been adjusted by adding a new attribute 'version' as this is the proper place for this data:

- Product(name="Fedora", version="20)
+ Product(name="Fedora")
+ Product("Fedora")

This is also why version is now a required field when creating a new test plan:

- TestPlan(name=N, product=P, type=T)
+ TestPlan(name=N, product=P, version=V, type=T)

Long-ago obsoleted functions for setting log level, cache level and coloring mode were removed, all log level constants are now directly available in the main module:

- setLogLevel(log.DEBUG)
+ set_log_level(LOG_DEBUG)

- setColorMode(COLOR_OFF)
+ set_color_mode(COLOR_OFF)

+ set_cache_level(CACHE_PERSISTENT)

Utility function color() does not reflect the current color mode automatically. Instead, new parameter 'enabled' should be used to disable the coloring when desired, for example:

color("txt", color="red", enabled=config.Coloring().enabled())


February 2012