Here is my directory structure:
/home/dmugtasimov/tmp/name-res
root
tests
__init__.py
test_1.py
__init__.py
Do not modify sys.path it leads to the issues when the same module is available under different names. See Traps for the Unwary.
Use absolute or explicit relative imports instead in the code and run your scripts from the project directory. Run the tests using the full name:
$ python -munittest root.tests.test_1
Some packages do modify sys.path internally e.g., see how twisted uses _preamble.py or pypy's autopath.py. You could decide whether their downsides (introduction of obscure import problems) are worth the convience (more ways to run your scripts are allowed). Avoid modifying sys.path in a code that is used as a library i.e., limit it to test modules and your command-line scripts.