title: Python package structure, setup.py for running unit tests
body: <p>I'm not sure I'm organizing my package structure correctly or am using the right options in setup.py because I'm getting errors when I try to run unit tests.</p>
  
  <p>I have a structure like this:</p>
  
  <pre><code>/project
     /bin
     /src
         /pkgname          
             __init__.py
             module1.py
             module2.py
     /tests
         __init__.py
         test1.py
         test2.py
  </code></pre>
  
  <p>My setup.py looks like this:                                                                                                        </p>
  
  <pre><code>#!/usr/bin/env python                                                                                                                                        
  from setuptools import setup, find_packages
  
  setup(version='0.1',
        description='Trend following library',
        author='Nate Reed',
        author_email='nate@natereed.com',
        packages=find_packages(),
        install_requires=['numpy'],
        test_suite="tests",                          
  )
  </code></pre>
  
  <p>When I run 'python setup.py test' I get:</p>
  
  <pre><code>nate@nate-desktop:~/PycharmProjects/trendfollowing$ sudo python setup.py test
  running test
  running egg_info
  writing requirements to UNKNOWN.egg-info/requires.txt
  writing UNKNOWN.egg-info/PKG-INFO
  writing top-level names to UNKNOWN.egg-info/top_level.txt
  writing dependency_links to UNKNOWN.egg-info/dependency_links.txt
  reading manifest file 'UNKNOWN.egg-info/SOURCES.txt'
  writing manifest file 'UNKNOWN.egg-info/SOURCES.txt'
  running build_ext
  Traceback (most recent call last):
    File "setup.py", line 11, in &lt;module&gt;
      test_suite="tests",
    File "/usr/lib/python2.6/distutils/core.py", line 152, in setup
      dist.run_commands()
    File "/usr/lib/python2.6/distutils/dist.py", line 975, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python2.6/distutils/dist.py", line 995, in run_command
      cmd_obj.run()
    File "/usr/lib/python2.6/dist-packages/setuptools/command/test.py", line 137, in run
      self.with_project_on_sys_path(self.run_tests)
    File "/usr/lib/python2.6/dist-packages/setuptools/command/test.py", line 117, in with_project_on_sys_path
      func()
    File "/usr/lib/python2.6/dist-packages/setuptools/command/test.py", line 146, in run_tests
      testLoader = loader_class()
    File "/usr/lib/python2.6/unittest.py", line 816, in __init__
      self.parseArgs(argv)
    File "/usr/lib/python2.6/unittest.py", line 843, in parseArgs
      self.createTests()
    File "/usr/lib/python2.6/unittest.py", line 849, in createTests
      self.module)
    File "/usr/lib/python2.6/unittest.py", line 613, in loadTestsFromNames
      suites = [self.loadTestsFromName(name, module) for name in names]
    File "/usr/lib/python2.6/unittest.py", line 587, in loadTestsFromName
      return self.loadTestsFromModule(obj)
    File "/usr/lib/python2.6/dist-packages/setuptools/command/test.py", line 34, in loadTestsFromModule
      tests.append(self.loadTestsFromName(submodule))
    File "/usr/lib/python2.6/unittest.py", line 584, in loadTestsFromName
      parent, obj = obj, getattr(obj, part)
  AttributeError: 'module' object has no attribute 'test1'
  </code></pre>
  
  <p>Do the test names need to match module names?  Are there other conventions I need to follow in my package structure?</p>