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)
@kiennt
Copy link

kiennt commented May 28, 2013

Ham self.init_mock bi goi di goi lai 4 lan, voi ca khong co cac bien mock_backcover, mock_frontcover, mock_input_files

Nen sua lai la

mock_backcover, mock_front_cover, mock_cached_pdf, mock_input_files = self.init_mock()

Nhung t chi nen lam the neu ham init_mock duoc goi nhieu lan trong TestModel hoac khong self.init_mock() se phai giam so luong mock object create trong do

@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