Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AttributeError: 'module' object has no attribute 'tests'

I'm running this command:

python manage.py test project.apps.app1.tests 

and it causes this error:

AttributeError: 'module' object has no attribute 'tests'

Below is my directory structure. I've also added app1 to my installed apps config.

Traceback (most recent call last):     File "manage.py", line 10, in <module> execute_from_command_line(sys.argv)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line     utility.execute()     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute     self.fetch_command(subcommand).run_from_argv(self.argv)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 50, in run_from_argv     super(Command, self).run_from_argv(argv)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv     self.execute(*args, **options.__dict__)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 71, in execute     super(Command, self).execute(*args, **options)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute     output = self.handle(*args, **options)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 88, in handle     failures = test_runner.run_tests(test_labels)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/test/runner.py", line 146, in run_tests     suite = self.build_suite(test_labels, extra_tests)     File "/home/username/local/dev/local/lib/python2.7/site-packages/django/test/runner.py", line 66, in build_suite     tests = self.test_loader.loadTestsFromName(label)     File "/usr/lib/python2.7/unittest/loader.py", line 100, in loadTestsFromName     parent, obj = obj, getattr(obj, part)     AttributeError: 'module' object has no attribute 'tests' 

Directory structure:

enter image description here

like image 735
Chris Avatar asked Aug 29 '14 19:08

Chris


People also ask

Why am I getting AttributeError Object has no attribute?

If you are getting an object that has no attribute error then the reason behind it is because your indentation is goofed, and you've mixed tabs and spaces. Run the script with python -tt to verify.

How do I fix this Object has no attribute in Python?

To avoid the AttributeError in Python code, a check should be performed before referencing an attribute on an object to ensure that it exists. The Python help() function can be used to find out all attributes and methods related to the object. To resolve the AttributeError , a try-except block can be used.

How do you fix an Object that has no attribute?

The Python "AttributeError: 'list' object has no attribute" occurs when we access an attribute that doesn't exist on a list. To solve the error, access the list element at a specific index or correct the assignment.

What is AttributeError module Object has no attribute?

The Python "AttributeError: module has no attribute" occurs for multiple reasons: Having a circular dependency between files, e.g. file A imports file B and vice versa. Having a local module with the same name as an imported module. Having an incorrect import statement.


2 Answers

I finally figured it out working on another problem. The problem was that my test couldn't find an import.

It looks like you get the above error if your test fails to import. This makes sense because the test suite can't import a broken test. At least I think this is what is going on because I fixed the import within my test file and sure enough it started working.

To validate your test case just try import the test case file in python console.

Example:

from project.apps.app1.tests import * 
like image 83
Chris Avatar answered Sep 20 '22 10:09

Chris


Use:

./manage.py shell

followed by

import myapp.tests

to find the nature of the import error.

like image 28
Steve Bradshaw Avatar answered Sep 22 '22 10:09

Steve Bradshaw