Floris Bruynooghe
e2201fe3a9
Look up the pytest_assertrepr_compare hook for each test item
...
Before this was only done at the time the assertion plugin was loaded.
This lead to counter-intuitive behaviour where two subdirectories with
a pytest_assertrepr_compare hook in their conftest.py would not work,
only one would ever be used.
This defers assiging the _pytest.assertion.util._reprcompare function
until the item is loaded (pytest_runtest_setup) so that it can use the
hookrelay of the test item to find the appropriate
pytest_assertrepr_compare hook for the item.
This fixes issue #77 .
2011-10-16 11:51:15 +01:00
Benjamin Peterson
45b98d6e70
cast boolean thing to int to make py3.3 happy
2011-10-14 18:08:10 -04:00
Benjamin Peterson
29b4082b00
put the explanation generating code in the conditional fail body ( fixes #79 )
2011-10-14 16:26:13 -04:00
holger krekel
fb6fc673b8
don't try assertion rewriting on jython for now
2011-09-21 06:45:40 +02:00
Benjamin Peterson
2bc4065a00
rewrite file newlines when the python parser is picky
2011-09-20 17:53:07 -04:00
Benjamin Peterson
8675cf640d
every boolop operand must have it's own format context ( fixes #69 )
2011-08-30 10:34:21 -04:00
Benjamin Peterson
8b211983ff
clear instead of deleting temporary assertion variables
2011-08-30 00:24:57 -04:00
Benjamin Peterson
661a8a4a92
only use the last part of the module name in the filename ( fixes #68 )
2011-08-30 00:12:07 -04:00
Benjamin Peterson
abe080c6b4
use different caches for optimized and unoptimized code ( fixes #66 )
2011-08-29 10:13:00 -04:00
Benjamin Peterson
9675b0f65c
factor out win32 checks
2011-08-18 18:15:30 -05:00
Benjamin Peterson
6ca3c980bf
same as 6e94b1809f67: ENOTDIR is ENOENT on windows
2011-08-18 14:49:17 -05:00
Benjamin Peterson
5bd34f8ecc
windows kicks up a ENOENT when a part of the path is not a dir
2011-08-18 14:39:57 -05:00
Benjamin Peterson
c5dee7b549
_make_rewritten_pyc doesn't need to return anything
2011-07-25 21:42:57 -05:00
Benjamin Peterson
643ab120f4
only try to create the __pycache__ dir (not a tree to it) fixes #60
...
Also, improve error handling surrounding __pycache__ creation.
2011-07-25 21:40:38 -05:00
Benjamin Peterson
2c4964d290
escape '%' in specialized comparison explanations ( fixes #63 )
2011-07-19 21:42:00 -05:00
holger krekel
43113f9a9d
add some debugging tracing to assertion rewriting to understand where failures (specifically issue60) come from.
2011-07-14 19:17:17 +02:00
Benjamin Peterson
7576b3c7d0
fix assertion rewriting on calls with a double-star arg
2011-07-14 11:45:42 -05:00
Benjamin Peterson
3cc8697744
respect sys.dont_write_bytecode and PYTHONDONTWRITEBYTECODE
2011-07-13 13:33:54 -05:00
Benjamin Peterson
14ceaf2459
fix assertion rewriting in read-only directories (refs #60 )
2011-07-12 17:09:14 -05:00
Michał Bartoszkiewicz
6096aeca53
Fix a typo in assertion rewriting.
2011-07-11 11:57:47 +02:00
Benjamin Peterson
8cd68494bf
update assertion option names
2011-07-10 21:02:36 -05:00
Benjamin Peterson
bc66cd85b1
customize pyc tag based on implementation
2011-07-08 13:53:23 -05:00
Benjamin Peterson
639f35bbc4
on windows, rename is not atomic, so utilize exclusive access to the file
2011-07-08 13:17:42 -05:00
Benjamin Peterson
fb043c355e
use py.builtin.exec_
2011-07-07 09:27:40 -05:00
Benjamin Peterson
c13fa886d9
simplify rewrite-on-import
...
Use load_module on the import hook to load the rewritten module. This allows the
removal of the complicated code related to copying pyc files in and out of the
cache location. It also plays more nicely with parallel py.test processes like
the ones found in xdist.
2011-07-06 23:24:04 -05:00
Benjamin Peterson
4e8b9fab3c
insure moving pyc files around is atomic
2011-07-05 12:02:53 -05:00
holger krekel
d105e75d87
fix pytest-xdist breakage
2011-07-05 18:01:31 +02:00
holger krekel
46950ef19a
rename and simplify the assert option:
...
cmdline usage is now: --assert=rewrite/reinterp/plain
there is no conflict detection (don't think that's neccessary)
2011-07-05 17:29:53 +02:00
holger krekel
407ca5b120
fix python2.5 compatibility
2011-07-05 15:21:08 +02:00
Benjamin Peterson
fefdca5787
simplify
2011-06-29 14:00:13 -05:00
Benjamin Peterson
c7d120ec1c
we want second resolution on mtime
2011-06-29 13:55:26 -05:00
Benjamin Peterson
1707168b62
don't try to remove pycs twice
2011-06-29 12:16:47 -05:00
Benjamin Peterson
aa7f7a1c71
rename --assertmode choices to be more explicit
2011-06-29 09:44:04 -05:00
Benjamin Peterson
48b76c7544
rewrite test modules on import
2011-06-28 21:13:12 -05:00
Benjamin Peterson
d52ff3e2b9
use a plain old list for queuing
2011-06-28 21:11:56 -05:00
Benjamin Peterson
f286a02582
rewrite with proper short-circuting on boolean operators ( fixes #57 )
2011-06-28 20:21:22 -05:00
Benjamin Peterson
c6e3606c6b
fix the rewriter on relative imports ( fixes #58 )
2011-06-28 10:39:11 -05:00
Benjamin Peterson
8772b8c928
fix name
2011-06-13 08:50:50 -05:00
Benjamin Peterson
8e81ed693a
put explanation simplification in format_explanation so everyone can benefit
2011-06-12 22:41:58 -05:00
Benjamin Peterson
d853d9a9af
treat local as a black box
2011-06-12 21:57:22 -05:00
Benjamin Peterson
57a3d4d6d8
some tweaks to allow pypy apptests to use newinterpret
2011-06-12 17:07:49 -05:00
Benjamin Peterson
43de6c270f
fix assertion introspection on python 3.2+
2011-06-03 16:51:49 -05:00
Benjamin Peterson
5e31624315
return to the old scheme of rewriting test modules from _importtestmodule
2011-05-28 18:47:16 -05:00
Benjamin Peterson
5f75c5851f
can use non-underscored addoption
2011-05-26 23:15:33 -05:00
Benjamin Peterson
e56838cb6c
write an explicit raise if the assertion fails
2011-05-26 21:15:40 -05:00
Benjamin Peterson
d53feaf6f0
fix help for --assertmode
2011-05-26 20:59:43 -05:00
Benjamin Peterson
914f689ee8
beef up --assertmode help
2011-05-26 20:33:12 -05:00
Benjamin Peterson
abb07fc732
new way to rewrite tests: do it all during fs collection
...
This should allow modules to be rewritten before some other test module loads
them.
2011-05-26 19:57:30 -05:00
Benjamin Peterson
657522b629
a less ugly way to detect if assert rewriting is enabled
2011-05-26 17:17:48 -05:00
Benjamin Peterson
bf3d9f3737
correct attribute name
2011-05-26 16:18:18 -05:00