I have a Python project with following directory structure:
/(some files) /model/(python files) /tools/(more python files) ...
So, I have Python files in couple subdirectories and there are some dependencies between directories as well: tools are used by model, etc. Now my problem is that I want to make doctests for both models and tools, and I want be able to run tests from command line like this: ./model/car.py . I can make this work, but only with messy boilerplate code. I would like to know what is the correct way, or is there any?
Question: How should I write my imports?
Thanx. Here is an example...
Content of tools/tool.py:
#!/usr/bin/env python
"""
   >>> is_four(21)
   False
   >>> is_four(4)
   True
"""
def is_four(val):
    return val == 4
if __name__ == '__main__':
    import doctest
    doctest.testmod()
... and model/car.py:
#!/usr/bin/env python   
"""
   >>> car = Car()
   >>> car.ok()
   True
"""
from tools.tool import *
class Car(object):
    def __init__(self):
        self.tire_count = 4
    def ok(self):
        return is_four(self.tire_count)
if __name__ == '__main__':
    import doctest
    doctest.testmod()
By adding following lines in the begin of car.py it works, but doesn't look nice. :(
if __name__ == '__main__':
    import sys
    import os
    sys.path.append(os.path.abspath(os.path.dirname('..')))
 
     
     
     
    