Advertisement
Guest User

OatBran

a guest
Jan 5th, 2010
1,103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.86 KB | None | 0 0
  1. #--------------------------------------------------
  2. # importme.py
  3. #--------------------------------------------------
  4.  
  5. def render(arg1):
  6.     print 'real render', arg1
  7.     return arg1
  8.  
  9.  
  10. #--------------------------------------------------
  11. # faketest.py
  12. #--------------------------------------------------
  13.  
  14. from importme import render
  15.  
  16. def run(somearg):
  17.     return render(somearg)
  18.  
  19.  
  20. #--------------------------------------------------
  21. # mintest.py
  22. #--------------------------------------------------
  23.  
  24. import unittest
  25.  
  26. class Tester(unittest.TestCase):
  27.    
  28.     def setUp(self):        
  29.         import importme        
  30.         self._real_render = importme.render
  31.         importme.render = self._fake_render
  32.        
  33.         import faketest
  34.         self.run = faketest.run
  35.    
  36.     def _fake_render(self, arg1):
  37.         # hijack the render function before it actually renders and save arg1
  38.         self.arg1 = arg1
  39.         return self._real_render(arg1)
  40.    
  41.     def test_A(self):
  42.         self.run('test A')
  43.         self.assertEqual(self.arg1, 'test A')
  44.    
  45.     def test_B(self):
  46.         self.run('test B')
  47.         self.assertEqual(self.arg1, 'test B')
  48.  
  49.  
  50. if __name__ == '__main__':
  51.     unittest.main()
  52.  
  53.  
  54. #--------------------------------------------------
  55. # output
  56. #--------------------------------------------------
  57. $ python mintest.py
  58. real render test A
  59. .real render test B
  60. E
  61. ======================================================================
  62. ERROR: test_B (__main__.Tester)
  63. ----------------------------------------------------------------------
  64. Traceback (most recent call last):
  65.   File "mintest.py", line 24, in test_B
  66.     self.assertEqual(self.arg1, 'test B')
  67. AttributeError: 'Tester' object has no attribute 'arg1'
  68.  
  69. ----------------------------------------------------------------------
  70. Ran 2 tests in 0.000s
  71.  
  72. FAILED (errors=1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement