On 11/16/06, Maciek Fijalkowski <[EMAIL PROTECTED]> wrote: > Pierre Rouleau wrote: > > >Hi all, > > > >Using the latest of py.test (svn 34683), I can't seem to be able to > >control a module test setup using setup_module() as described in > >section 2.15 of http://codespeak.net/py/current/doc/test.html > > > >The document gives the following example: > > > >def setup_module(module): > > """ setup up any state specific to the execution > > of the given module. > > """ > > > >Now, I am assuming that the the definition of setup_module() must be > >written /inside/ the test script that test the module-under-test > >tested, right? > > > >Second, I am also assuming that setup_module's argument is the name of > >the module-under-test. > > > >Given the above assumptions, if I write a test script to test roman.py > > would be called test_roman.py and would include > > > >def setup_module(roman): > > print 'SETTING up roman for testing....' > > > >And if I ran py.test -s test_roman.py I should be able to see the > >printed output. I don't. > > > >So, what do i do wrong here? > > > >Thanks > >_______________________________________________ > >py-dev mailing list > >py-dev@codespeak.net > >http://codespeak.net/mailman/listinfo/py-dev > > > > > Hum. I cannot reproduce you problem (I can clearly see 'SETTING up > roman...' just after [5024] and before any dots. Yes, this is supposed > to go to main body of testing module and it receives module object > itself (not a name) >
Sorry, i also got it working if all the setup_module() does is printing the message. I forgot to mention that the setup_module() was setting the value of knownValues after declaring it global. I though that it would then be available to all test functions (as is the case with nose), but it's not. The setup_module I have looks like this: def setup_module(roman): print 'SETTING UP........................' global knownValues knownValues = ( (1, 'I'), (2, 'II'), (3, 'III'), (4, 'IV'), (5, 'V'), (6, 'VI'), (7, 'VII'), .... I wanted to know if the values set up by the setup_module function would be available to the test functions. The test function that fails is failing because knownValues is not accessible to the check inside test_known_values. def test_known_values() : """Test all known values.""" def check(number, roman_numeral): print 'test_known_values Testing: ', roman_numeral assert roman.toRoman(number) == roman_numeral assert roman.fromRoman(roman_numeral) == number # all Roman numerals should be in upper case assert roman_numeral.upper() == roman_numeral # lower case Roman numerals are not accepted raises(roman.InvalidRomanNumeralError, roman.fromRoman, roman_numeral.lower()) tested_numbers = [] # test the numbers in the table above for number, roman_numeral in knownValues: yield check, number, roman_numeral tested_numbers.append(number) # test the others for number in xrange(1,5000): if number not in tested_numbers: yield check, number, roman.toRoman(number) Note that nose is able to recover the global variable and the test succeeds in nosetests. py.test does not seem able to do it. It's not that I absolutely want to use global variables, but I wanted to checks the module setup mechanism. -- P.R. _______________________________________________ py-dev mailing list py-dev@codespeak.net http://codespeak.net/mailman/listinfo/py-dev