1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # -*- coding: utf-8 -*-
- import marshmallow as marshmallow
- import pytest
-
- from hapic.exception import OutputValidationException
- from hapic.processor import MarshmallowOutputProcessor
- from hapic.processor import MarshmallowInputProcessor
- from tests.base import Base
-
-
- class MySchema(marshmallow.Schema):
- first_name = marshmallow.fields.String(required=True)
- last_name = marshmallow.fields.String(missing='Doe')
-
-
- class TestProcessor(Base):
- def test_unit__marshmallow_output_processor__ok__process_success(self):
- processor = MarshmallowOutputProcessor()
- processor.schema = MySchema()
-
- tested_data = {
- 'first_name': 'Alan',
- 'last_name': 'Turing',
- }
- data = processor.process(tested_data)
-
- assert data == tested_data
-
- def test_unit__marshmallow_output_processor__ok__missing_data(self):
- processor = MarshmallowOutputProcessor()
- processor.schema = MySchema()
-
- tested_data = {
- 'last_name': 'Turing',
- }
-
- with pytest.raises(OutputValidationException):
- processor.process(tested_data)
-
- def test_unit__marshmallow_input_processor__ok__process_success(self):
- processor = MarshmallowInputProcessor()
- processor.schema = MySchema()
-
- tested_data = {
- 'first_name': 'Alan',
- 'last_name': 'Turing',
- }
- data = processor.process(tested_data)
-
- assert data == tested_data
-
- def test_unit__marshmallow_input_processor__error__validation_error(self):
- processor = MarshmallowInputProcessor()
- processor.schema = MySchema()
-
- tested_data = {
- 'last_name': 'Turing',
- }
-
- with pytest.raises(OutputValidationException):
- processor.process(tested_data)
-
- errors = processor.get_validation_error(tested_data)
- assert errors.error_details
- assert 'first_name' in errors.error_details
-
- def test_unit__marshmallow_input_processor__ok__completed_data(self):
- processor = MarshmallowInputProcessor()
- processor.schema = MySchema()
-
- tested_data = {
- 'first_name': 'Alan',
- }
-
- data = processor.process(tested_data)
- assert {
- 'first_name': 'Alan',
- 'last_name': 'Doe',
- } == data
|