Exemple #1
0
def install_error_handlers(app, api):
    error = api.model(
        "IntegrityError",
        {
            "type": fields.ClassName(dash=True),
            # Get a kinda raw error message from psycopg
            "message": fields.String(attribute=lambda e: e._message()),
        },
    )

    @app.errorhandler(IntegrityError)
    @api.errorhandler(IntegrityError)
    @api.marshal_with(error, code=400)
    def integrity_error(error):
        """Database integrity error"""
        return error, 400

    error = api.model(
        "InvalidTransition",
        {
            "type": fields.ClassName(dash=True),
            "message": fields.String(attribute=lambda e: str(e)),
            "from": fields.String(attribute="from_state"),
            "to": fields.String(attribute="to_state"),
        },
    )

    @app.errorhandler(InvalidTransition)
    @api.errorhandler(InvalidTransition)
    @api.marshal_with(error, code=400)
    def invalid_transition(error):
        """Raised when the state transition is invalid is invalid"""
        return error, 400
Exemple #2
0
    def test_with_dict(self, api):
        model = api.model('Test', {
            'name': fields.ClassName(),
        })

        data = api.marshal({}, model)
        assert data == {'name': 'object'}
    def test_with_dict(self):
        model = self.api.model('Test', {
            'name': fields.ClassName(),
        })

        data = self.api.marshal({}, model)
        assert_equal(data, {'name': 'object'})
Exemple #4
0
    def test_output_dash(self, api):
        model = api.model('Test', {
            'name': fields.ClassName(dash=True),
        })

        class FakeClass(object):
            pass

        data = api.marshal(FakeClass(), model)
        assert data == {'name': 'fake_class'}
Exemple #5
0
    def test_default_output_classname(self, api):
        model = api.model('Test', {
            'name': fields.ClassName(),
        })

        class FakeClass(object):
            pass

        data = api.marshal(FakeClass(), model)
        assert data == {'name': 'FakeClass'}
    def test_default_output_classname(self):
        model = self.api.model('Test', {
            'name': fields.ClassName(),
        })

        class FakeClass(object):
            pass

        data = self.api.marshal(FakeClass(), model)
        assert_equal(data, {'name': 'FakeClass'})
Exemple #7
0
 def test_simple_string_field(self):
     field = fields.ClassName()
     assert not field.required
     assert not field.discriminator
     assert field.__schema__ == {'type': 'string'}