﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
20449	New test runner test fails if run from a different directory	Chris Wilson	tadeck	"{{{
======================================================================
ERROR: test_file_path (test_runner.test_discover_runner.DiscoverRunnerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File ""/home/travis/build/aptivate/django/tests/test_runner/test_discover_runner.py"", line 65, in test_file_path
  [""test_discovery_sample/""],
File ""/home/travis/build/aptivate/django/django/test/runner.py"", line 63, in build_suite
  tests = self.test_loader.loadTestsFromName(label)
File ""/usr/lib/python2.7/unittest/loader.py"", line 91, in loadTestsFromName
  module = __import__('.'.join(parts_copy))
ImportError: Import by filename is not supported.
}}}

<https://next.travis-ci.org/aptivate/django/jobs/7275360>
 
It seems to be checking if a file exists, using a relative path, in django/test/runner.py:65:

{{{
    if not os.path.exists(label_as_path):
        tests = self.test_loader.loadTestsFromName(label)
}}}

And that will behave differently depending if you run your tests from inside the tests directory like this:

{{{
./runtests.py -v2 --settings=test_postgres_nogis test_runner
}}}

Or from the parent directory, as Travis currently does, like this:

{{{
    python -Wall tests/runtests.py --selenium --verbosity 2 \
        --settings=django_settings
}}}

I can work around it in Travis by changing working directory before running the tests, but is it worth fixing this in the test runner, perhaps using an absolute path based on `__file__`?

Carl Meyer wrote:

 I don't think this should be fixed in the test runner itself; in general, file-path test labels _should_ be interpreted as relative to wherever you are running the tests from. 
 
 But it should be fixed in the test_runner.test_discover_runner.DiscoverRunnerTest.test_file_path test - that test apparently needs to isolate itself better by setting the CWD for the duration of the test, or something similar. Mind filing a bug? I should be able to take a look soon.

So here it is :)"	Bug	closed	Testing framework	dev	Normal	fixed		marc.tamlyn@… tadeck	Accepted	1	0	0	0	0	0
