Example #1
0
 def test_if_first_qfier_None_but_not_single_will_call_add_qualifiers(
         s, tags, mocker):
     processor = (tags[0], None, 3)
     rs = RunnerStack(None)
     mk_add_qf = mocker.patch.object(rs, 'add_qualifiers')
     rs.add(processor)
     mk_add_qf.assert_called_once_with(None, 3)
Example #2
0
 def test_cannot_add_qualifier_without_context(self, tags):
     processors = ((t, None) for t in tags)
     rs = RunnerStack(None)
     rs.add(*processors)
     with pytest.raises(err.VinoError) as exc_info:
         rs.add_qualifiers([0, 1])
     error = exc_info.value
     assert 'must be given a context' in str(error).lower()
Example #3
0
 def test_can_add_qualifiers_if_context_has_QStack_class(self, tags):
     processors = ((t, None) for t in tags)
     c = ctx.Context()
     c = ctx.Context(qualifier_stack_cls=quals.ItemQualifierStack)
     rs = RunnerStack(c)
     rs.add(*processors)
     rs.add_qualifiers([0, 1])
     qstack = rs[-1]['qualifiers']
     qualifiers = qstack.qualifiers
     assert qualifiers['indices'] == {0, 1}
Example #4
0
 def test_cannot_add_qualifier_if_context_has_no_QStack_class(self, tags):
     processors = ((t, None) for t in tags)
     c = ctx.Context(qualifier_stack_cls=quals.ItemQualifierStack)
     rs = RunnerStack(c)
     rs.add(*processors)
     c.qualifier_stack_cls = None
     with pytest.raises(err.VinoError) as exc_info:
         rs.add_qualifiers([0, 1])
     error = exc_info.value
     assert ('qualifierstack constructor must be specified'
             in str(error).lower())
Example #5
0
 def test_cannot_add_qualifiers_if_runner_has_qualifiers_set_to_False(
         self, tags):
     processors = ((t, None) for t in tags)
     c = ctx.Context()
     c._qualifier_stack_constructor = quals.ItemQualifierStack
     rs = RunnerStack(c)
     rs.add(*processors)
     rs[-1]['qualifiers'] = False
     with pytest.raises(err.VinoError) as exc_info:
         rs.add_qualifiers([0, 1])
     error = exc_info.value
     assert 'does not accept qualifiers' in str(error).lower()
Example #6
0
 def test_successive_qualifier_applications_merges_qualifiers(self, tags):
     processors = ((t, None) for t in tags)
     c = ctx.Context(qualifier_stack_cls=quals.ItemQualifierStack)
     rs = RunnerStack(c)
     rs.add(*processors)
     rs.add_qualifiers([0, 1])
     qstack = rs[-1]['qualifiers']
     qualifiers = qstack.qualifiers
     assert qualifiers['indices'] == {0, 1}
     rs.add_qualifiers([1, 3, 8])
     assert qualifiers['indices'] == {0, 1, 3, 8}
     rs.add_qualifiers(9, 5, 0, 1)
     assert qualifiers['indices'] == {0, 1, 3, 8, 9, 5}
Example #7
0
 def test_items_are_Runners(s, tags):
     processors = ((t, None) for t in tags)
     rs = RunnerStack(None)
     rs.add(*processors)
     for r in rs:
         assert isinstance(r['runner'], Runner)
Example #8
0
 def test_can_add_processors_without_context(self, tags):
     processors = ((t, None) for t in tags)
     rs = RunnerStack(None)
     rs.add(*processors)
     assert len(rs) == 3
Example #9
0
 def test_can_add_processors_without_qualifiers(self, tags):
     processors = ((t, None) for t in tags)
     c = ctx.Context()
     rs = RunnerStack(c)
     rs.add(*processors)
     assert len(rs) == 3
Example #10
0
 def test_if_single_qfier_is_None_no_qfiers_created(s, tags):
     processors = ((t, None) for t in tags)
     rs = RunnerStack(None)
     rs.add(*processors)
     for r in rs:
         assert r['qualifiers'] is None
Example #11
0
 def test_single_qfier_set_to_False_sets_runner_qfiers_to_False(s, tags):
     processors = [[t, None] for t in tags]
     processors[1][1] = False
     rs = RunnerStack(None)
     rs.add(*processors)
     assert rs[1]['qualifiers'] is False
Example #12
0
 def test_cannot_add_processor_as_single_item(self, tags):
     rs = RunnerStack(None)
     with pytest.raises(err.VinoError) as exc_info:
         rs.add(*tags)
     error = exc_info.value
     assert 'must be specified in tuples' in str(error).lower()
Example #13
0
 def test_can_add_processors_in_tuple(self, tags):
     processors = ((t, None) for t in tags)
     rs = RunnerStack(None)
     rs.add(*processors)
     assert len(rs) == len(tags)