nose, doctest, and module names in subpackages

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • davidlmontgomery@gmail.com

    #1

    nose, doctest, and module names in subpackages

    I'm trying to use both nosetests and doctest with the tests
    pulled out into a separate file. My problem is that it
    seems that I need to use different import statements
    depending on from where I run the tests.

    Here's my directory structure:
    /dir
    __init__.py
    /sub
    __init__.py
    code_file.py
    test_code_file. py
    tests.txt

    --- code_file.py: ---
    def example_functio n():
    return 0

    --- test_code_file. py ---
    def run_tests():
    import doctest
    result=doctest. testfile("tests .txt")
    assert result[0] == 0

    if __name__ == "__main__":
    run_tests()

    --- tests.txt ---
    >>from code_file import example_functio n
    With this, nosetests works when run from /dir/sub, but
    the import fails if nosetests is run from /dir.

    If I change tests.txt to

    --- tests.txt ---
    >>from sub.code_file import example_functio n
    (adding "sub.") then nosetests works from /dir, but not
    from /dir/sub. And in this case "python test_code_file. py"
    fails when run from /dir/sub.

    In general, I would like to run doctests during development
    from the directory where the code lives, leading me to
    prefer "from code_file import", but I would like to run
    nosetests from the top of the tree, leading me to want
    "from sub.code_file import".

    I played around with variations like using doctest.DocFile Suite
    and nosetests' --with-doctest option, but nothing I tried
    helped with the basic issue of the name of the module
    varying depending on the execution directory.

    It seems I'm missing something very basic here. Any tips
    would be much appreciated.

    (I'm running python 2.4.1 and nosetests 0.9.0)

    David

Working...