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}
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())
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()
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}
def test_validation_continues_if_interrupt_flag_not_raised(s, tags): # tags are : bold, italic, and underline in that order def failing_processor(value, state): e = err.ValidationError("I'll fail you, no matter what", interrupt_validation=False) raise e processors = (failing_processor, ) + tags try: c = ctx.Context(*processors) value = c.validate('some contents') except err.ValidationErrorStack as e: assert e.data == '<u><i><b>' + 'some contents' + '</b></i></u>'
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