From b85cc739dc5e8ba472e5fbc62b7d5b6680b2a5c8 Mon Sep 17 00:00:00 2001 From: "mission.liao" Date: Tue, 19 Dec 2017 21:22:30 +0800 Subject: [PATCH] Allow to render request for parameters without 'format' refer to this issue: https://github.com/mission-liao/pyswagger/issues/144 --- pyswagger/primitives/render.py | 4 ++++ .../tests/data/v2_0/render/other/swagger.json | 6 ++++++ pyswagger/tests/test_render.py | 16 ++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/pyswagger/primitives/render.py b/pyswagger/primitives/render.py index 00cad25..d606ea7 100644 --- a/pyswagger/primitives/render.py +++ b/pyswagger/primitives/render.py @@ -135,10 +135,14 @@ def __init__(self): # init map of generators self._map = { 'integer': { + '': _int_, + None: _int_, 'int32': _int_, 'int64': _int_, }, 'number': { + '': _float_, + None: _float_, 'float': _float_, 'double': _float_, }, diff --git a/pyswagger/tests/data/v2_0/render/other/swagger.json b/pyswagger/tests/data/v2_0/render/other/swagger.json index 2f72f19..44f1143 100644 --- a/pyswagger/tests/data/v2_0/render/other/swagger.json +++ b/pyswagger/tests/data/v2_0/render/other/swagger.json @@ -24,6 +24,9 @@ } ] }, + "float.2":{ + "type":"number" + }, "integer.1":{ "type":"integer", "format":"int32", @@ -31,6 +34,9 @@ "minimum":10, "multipleOf":5 }, + "integer.2":{ + "type":"integer" + }, "enum.string":{ "type":"string", "enum":[ diff --git a/pyswagger/tests/test_render.py b/pyswagger/tests/test_render.py index f18f437..df17aea 100644 --- a/pyswagger/tests/test_render.py +++ b/pyswagger/tests/test_render.py @@ -123,6 +123,14 @@ def test_integer(self): self.assertTrue(i >= 10, 'should be greater than 10, not {0}'.format(i)) self.assertTrue((i % 5) == 0, 'should be moduleable by 5, not {0}'.format(i)) + def test_integer_without_format(self): + for _ in six.moves.xrange(50): + i = self.rnd.render( + self.app.resolve('#/definitions/integer.2'), + opt=self.rnd.default() + ) + self.assertTrue(isinstance(i, six.integer_types), 'should be integer, not {0}'.format(i)) + def test_float(self): for _ in six.moves.xrange(50): f = self.rnd.render( @@ -134,6 +142,14 @@ def test_float(self): self.assertTrue(f >= 50, 'should be greater than 50, not {0}'.format(f)) self.assertTrue((f % 5) == 0, 'should be moduleable by 5, not {0}'.format(f)) + def test_float_without_format(self): + for _ in six.moves.xrange(50): + f = self.rnd.render( + self.app.resolve('#/definitions/float.2'), + opt=self.rnd.default() + ) + self.assertTrue(isinstance(f, float), 'should be float, not {0}'.format(f)) + def test_bool(self): b = self.rnd.render( self.app.resolve('#/definitions/bool.1'),