This is a test for objects implementing the IRating interface.  The
calling testcase needs to provide a `rating_factory` class for testing::

    >>> rating = rating_factory(5, 'me')
    >>> rating2 = rating_factory(6, 'you')

The rating behaves as a float::

    >>> float(rating)
    5.0
    >>> rating + 1
    6.0
    >>> rating * 3
    15.0
    >>> rating / 2
    2.5
    >>> rating + rating2
    11.0

However it also has some extra attributes::

    >>> rating.userid
    'me'
    >>> rating.timestamp # doctest: +ELLIPSIS
    datetime.datetime(...)

And special string representations::

    >>> rating # doctest: +ELLIPSIS
    <... 5.0 by 'me' on ...>
    >>> print rating
    5.0
