Python: Unit Testing Module and Relative Imports
Question: Currently have the following file hierarchy:

    
    
    \package
        __init__.py
        run_everything.py
    
        \subpackage
            __init__.py
            work.py
            work1.py
            work2.py
    
        \test
            __init__.py
            test_work.py
            test_work1.py
    

My first question is regarding relative imports. Suppose in
\subpackage\work.py I have a function called custom_function(), and I would
like to test that function in test_work.py. For some reason I can not figure
out how to make this import from one module to another. Trying `from ..
subpackage.work1 import custom_function()` does not seem to work, and yields
the error `Attempted relative import in non-package` Is there any way to
resolve this?

2) I would like to run all test files from run_everything.py with one
function, would adding a suite() function in each test_work*.py file, which
adds each unit_testing class to suite.addTest(unittest.makeSuite(TestClass)),
and finally importing them into the top-level run_everything.py be the most
_conventional way_ in Python2.7?


Answer: Here is a hack*  
Insert the path's to "subpackage" and "test" to your python path in
run_everything using:

    
    
        import sys
        sys.path.insert(0, '/path/to/package/subpackage')
        sys.path.insert(0, '/path/to/package/test')

And then, you can import all your files using vanilla imports in
run_everything:

    
    
        import work, work1, work2
        import test_work, test_work1
    

*This won't permanently affect your PYTHONPATH. *Don't forget to down-vote me for hard-coding :(

