Staging
v0.5.1
https://github.com/python/cpython
Revision 7b0657027f04ac0367908ee0474f6d762366e4bb authored by Steve Purcell on 06 September 2001, 08:24:40 UTC, committed by Steve Purcell on 06 September 2001, 08:24:40 UTC
This patch is similar to that proposed by Jeremy. The proposed patch altered
the interface of TestResult such that it would be passed the error
information as a string rather than an exc_info() tuple.

The implemented change leaves the interface untouched so that TestResults
are still passed the tracebacks, but stor them in stringified form for
later reporting.

Notes:
- Custom subclasses of TestResult written by users should be unaffected.
- The existing 'unittestgui.py' will still work with this module after the
  change.
- Support can later be added to pop into the debugger when an error occurs;
  this support should be added to a TestRunner rather than to TestCase itself,
  which this change will enable.

(Jeremy, Fred, Guido: Thanks for all the feedback)
1 parent 387c547
Raw File
Tip revision: 7b0657027f04ac0367908ee0474f6d762366e4bb authored by Steve Purcell on 06 September 2001, 08:24:40 UTC
Changed TestResult to store only the text representation of an error.
Tip revision: 7b06570
floatobject.h

/* Float object interface */

/*
PyFloatObject represents a (double precision) floating point number.
*/

#ifndef Py_FLOATOBJECT_H
#define Py_FLOATOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
    PyObject_HEAD
    double ob_fval;
} PyFloatObject;

extern DL_IMPORT(PyTypeObject) PyFloat_Type;

#define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type)

/* Return Python float from string PyObject.  Second argument ignored on
   input, and, if non-NULL, NULL is stored into *junk (this tried to serve a
   purpose once but can't be made to work as intended). */
extern DL_IMPORT(PyObject *) PyFloat_FromString(PyObject*, char** junk);

/* Return Python float from C double. */
extern DL_IMPORT(PyObject *) PyFloat_FromDouble(double);

/* Extract C double from Python float.  The macro version trades safety for
   speed. */
extern DL_IMPORT(double) PyFloat_AsDouble(PyObject *);
#define PyFloat_AS_DOUBLE(op) (((PyFloatObject *)(op))->ob_fval)

/* Write repr(v) into the char buffer argument, followed by null byte.  The
   buffer must be "big enough"; >= 100 is very safe.
   PyFloat_AsReprString(buf, x) strives to print enough digits so that
   PyFloat_FromString(buf) then reproduces x exactly. */
extern DL_IMPORT(void) PyFloat_AsReprString(char*, PyFloatObject *v);

/* Write str(v) into the char buffer argument, followed by null byte.  The
   buffer must be "big enough"; >= 100 is very safe.  Note that it's
   unusual to be able to get back the float you started with from
   PyFloat_AsString's result -- use PyFloat_AsReprString() if you want to
   preserve precision across conversions. */
extern DL_IMPORT(void) PyFloat_AsString(char*, PyFloatObject *v);

#ifdef __cplusplus
}
#endif
#endif /* !Py_FLOATOBJECT_H */
back to top