本文整理汇总了Python中vis.workflow.WorkflowManager._two_part_modules方法的典型用法代码示例。如果您正苦于以下问题:Python WorkflowManager._two_part_modules方法的具体用法?Python WorkflowManager._two_part_modules怎么用?Python WorkflowManager._two_part_modules使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vis.workflow.WorkflowManager
的用法示例。
在下文中一共展示了WorkflowManager._two_part_modules方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_two_part_modules_1
# 需要导入模块: from vis.workflow import WorkflowManager [as 别名]
# 或者: from vis.workflow.WorkflowManager import _two_part_modules [as 别名]
def test_two_part_modules_1(self, mock_int, mock_nri, mock_ng, mock_horiz, mock_ror):
# - we'll only use self._data[1]; excluding "Rest"
# 1.) prepare the test and mocks
test_pieces = [MagicMock(IndexedPiece, name=x) for x in [u'test1', u'test2', u'test3']]
# set up fake part names
for piece in test_pieces:
piece.metadata.return_value = [u'S', u'A', u'T', u'B']
# set up pseudo-IntervalIndexer results for mock_ror
part_combos = [u'0,3', u'1,3', u'2,3', u'0,1', u'0,2', u'1,2']
ror_vert_ret = {x: MagicMock(name=u'piece2 part ' + x) for x in part_combos}
ror_horiz_ret = [MagicMock(name=u'piece2 horiz ' + str(x)) for x in xrange(4)]
ror_returns = [ror_vert_ret, ror_horiz_ret]
def ror_side_effect(*args, **kwargs):
# NB: we need to accept "args" as a mock framework formality
# pylint: disable=W0613
return ror_returns.pop(0)
mock_ror.side_effect = ror_side_effect
# set up fake return values for IntervalIndexer
vert_ret = u"IntervalIndexer's return"
horiz_ret = u"HorizontalIntervalIndexer's return"
# set up return values for IndexedPiece.get_data()
returns = [vert_ret, horiz_ret, [u'piece2 3rd get_data()'], [u'piece2 4th get_data()'],
[u'piece2 5th get_data()'], [u'piece2 6th get_data()'], [u'piece2 7th get_data()'],
[u'piece2 8th get_data()']]
def side_effect(*args):
# NB: we need to accept "args" as a mock framework formality
# pylint: disable=W0613
return returns.pop(0)
for piece in test_pieces:
piece.get_data.side_effect = side_effect
expected = [x[0] for x in returns[2:]]
# 2.) prepare WorkflowManager and run the test
test_wc = WorkflowManager(test_pieces)
test_index = 1
test_wc.settings(test_index, u'interval quality', True)
test_wc.settings(test_index, u'simple intervals', True)
test_wc.settings(test_index, u'filter repeats', False)
test_wc.settings(test_index, u'offset interval', None)
actual = test_wc._two_part_modules(test_index)
# 3.) confirm everything was called in the right order
# - that every IP is asked for its vertical and horizontal interval indexes
# (that "mark singles" and "continuer" weren't put in the settings)
expected_interv_setts = {u'quality': True, u'simple or compound': u'simple'}
expected_ngram_settings = {u'horizontal': [1], u'vertical': [0], u'n': 2,
u'continuer': 'dynamic quality', u'mark singles': False,
u'terminator': u'Rest'}
# four-part piece means 6 combinations for NGramIndexer, plus 2 calls to interval indexers
self.assertEqual(8, test_pieces[test_index].get_data.call_count)
exp_calls = [mock.call([mock_nri, mock_int], expected_interv_setts),
mock.call([mock_nri, mock_horiz], expected_interv_setts)]
for i in xrange(len(exp_calls)):
self.assertEqual(test_pieces[test_index].get_data.mock_calls[i], exp_calls[i])
# - that _run_off_rep() is called once for horizontal and vertical
self.assertEqual(2, mock_ror.call_count)
mock_ror.assert_any_call(test_index, vert_ret)
mock_ror.assert_any_call(test_index, horiz_ret, is_horizontal=True)
# - that each IndP.get_data() called NGramIndexer with the right settings at some point
for combo in ror_vert_ret.iterkeys():
test_pieces[1].get_data.assert_any_call([mock_ng],
expected_ngram_settings,
[ror_vert_ret[combo],
ror_horiz_ret[interval.key_to_tuple(combo)[1]]])
self.assertSequenceEqual(expected, actual)