Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #--------------------------------------------------
- # importme.py
- #--------------------------------------------------
- def render(arg1):
- print 'real render', arg1
- return arg1
- #--------------------------------------------------
- # faketest.py
- #--------------------------------------------------
- from importme import render
- def run(somearg):
- return render(somearg)
- #--------------------------------------------------
- # mintest.py
- #--------------------------------------------------
- import unittest
- class Tester(unittest.TestCase):
- def setUp(self):
- import importme
- self._real_render = importme.render
- importme.render = self._fake_render
- import faketest
- self.run = faketest.run
- def _fake_render(self, arg1):
- # hijack the render function before it actually renders and save arg1
- self.arg1 = arg1
- return self._real_render(arg1)
- def test_A(self):
- self.run('test A')
- self.assertEqual(self.arg1, 'test A')
- def test_B(self):
- self.run('test B')
- self.assertEqual(self.arg1, 'test B')
- if __name__ == '__main__':
- unittest.main()
- #--------------------------------------------------
- # output
- #--------------------------------------------------
- $ python mintest.py
- real render test A
- .real render test B
- E
- ======================================================================
- ERROR: test_B (__main__.Tester)
- ----------------------------------------------------------------------
- Traceback (most recent call last):
- File "mintest.py", line 24, in test_B
- self.assertEqual(self.arg1, 'test B')
- AttributeError: 'Tester' object has no attribute 'arg1'
- ----------------------------------------------------------------------
- Ran 2 tests in 0.000s
- FAILED (errors=1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement