[Python-Dev] Does trace modules have a unit test? (original) (raw)

Alexander Belopolsky alexander.belopolsky at gmail.com
Sat Jul 24 18:20:03 CEST 2010


On Thu, Jul 22, 2010 at 6:33 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:

On Fri, Jul 23, 2010 at 3:30 AM, Alexander Belopolsky <alexander.belopolsky at gmail.com> wrote:

I see three solutions:

1.  Minimal:  do not rename testtrace in 2.7 and add trace module tests to the existing file.  Whether to revert testtrace to testlinetracing renaming in 3.2 can be decided after we have 2.7 tests written. 2. Rename testtrace in 2.7/3.1 and testlinetracing in 3.2 to testsyssettrace. 3. Rename testtrace in 2.7/3.1 to testlinetracing. My preference in #2, but I can live with #1  (assuming Eli is the one who will write the tests:-). I'd say just fix it and go with #2 (just update the comment in testsys as well!)

I have looked further into setprofile tests for inspiration and discovered that it is covered in test_profilehooks. Note that sys.settrace and sys.setprofile are very similar. They take a function with the same signature and report events in the same format. The only difference is in the kind of events that get reported. I made an experiment replacing [sg]etprofile with [sg]ettrace in test-profilehooks and all tests worked reporting failures in comparing outputs.

I would like to use this opportunity to merge settrace and setprofile tests. Here is the proposal:

Step 1: Rename test_trace to test_sys_settrace and test_profilehooks to test_sys_setprofile. Step 2: Create tracetester helper file with abstract test cases made from the union of test_sys_settrace and test_sys_setprofile test cases and replace the concrete test cases in test_sys_set* with subclasses that define setmethod, getmethod and expected_output.

An alternative proposal is to put all tests for both trace and profile into a single test_sys_tracing file.

What do you think?

(Another option is to leave test_profilehooks and use rename test_trace to test_tracehooks in the step 1 above.)



More information about the Python-Dev mailing list