All the four experiments are independent, right? So they don't rely on each others results. You can just remove this function and add the skip_if_no_data() to each of the test_part_{i} functions. The way nosetest works is that, it will look for any function with "test" in its name and run them all. So nee need for this function.