Skip to content

Instantly share code, notes, and snippets.

@orakaro
Last active December 17, 2015 19:49
Show Gist options
  • Save orakaro/5663205 to your computer and use it in GitHub Desktop.
Save orakaro/5663205 to your computer and use it in GitHub Desktop.
Try to create seperate function init_mock
class TestModel(unittest.TestCase):
def setUp(self):
self.order = Order()
def init_mock(self):
ary = dict()
ary["cached_pdf"] = PropertyMock(return_value='StoryTree/tests/fixtures/1.pdf')
ary["backcover"] = mock.Mock(return_value=image)
ary["frontcover"] = mock.Mock(return_value=image)
ary["input_files"] = mock.Mock(return_values=[''])
return ary
@mock.patch('StoryTree.helpers.generator.pdf.merge_pdf_files')
def test_create_final_pdf_file(self, mock_merge_pdf):
self.order.order_type = Order.SOFT_COVER
mock_cached_pdf, mock_backcover, mock_front_cover, mock_input_files = self.init_mock().values()
with nested(
mock.patch.object(Order, 'create_input_files', mock_input_files)
mock.patch.object(Order, 'cached_pdf_file', mock_cached_pdf),
mock.patch.object(Tree, 'create_backcover_image', mock_backcover),
mock.patch.object(Tree, 'create_frontcover_image', mock_front_cover)):
self.order.create_final_pdf_file('STORYTREE01111')
self.assertEqual(1, mock_backcover.call_count)
self.assertEqual(1, mock_frontcover.call_count)
self.assertEquals(1, mock_input_files.call_count)
@orakaro
Copy link
Author

orakaro commented May 28, 2013

Ok done, nhưng viết hàm riêng ra là hoàn toàn có thể đúng ko? Và với quan điểm cậu nêu ra trên bài viết về độ dài của 1 hàm trong code, thì trong test code cũng tương tự chứ :Hàm dài thì nên tách ra và các phần mang ý nghĩa khác nhau thì nên là các hàm con khác nhau ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment