def _is_freezeable(obj):
    """Determine if obj has the same freezing interface as `PostgreSQLTestUtil`.

    For some reason isinstance doesn't work properly with fixtures, so checking
    ``isinstance(obj, PostgreSQLTestDB)`` will always fail. Instead, we check to
    see if obj.time.freeze()/unfreeze() are present, and that the `time` member
    has context manager behavior implemented.
    """
    return (
        hasattr(obj, 'time') and
        callable(getattr(obj.time, 'freeze', None)) and
        callable(getattr(obj.time, 'unfreeze', None)) and
        callable(getattr(obj.time, '__enter__', None)) and
        callable(getattr(obj.time, '__exit__', None))
    )