From d3730fb7f7df8139a4ed4326f2fd8048968d6f98 Mon Sep 17 00:00:00 2001 From: David Lieu Date: Mon, 18 Nov 2019 16:24:53 -0500 Subject: [PATCH 1/4] testing: added test for model(...) --- tests/test_model.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/test_model.py diff --git a/tests/test_model.py b/tests/test_model.py new file mode 100644 index 0000000..051df58 --- /dev/null +++ b/tests/test_model.py @@ -0,0 +1,24 @@ +import datetime +import pytest +from flask_restful_swagger import swagger +from unittest.mock import patch + + +class TestEmptyClass(): + pass + + +@pytest.mark.parametrize("test_input", [ + TestEmptyClass, #Test a class + 'im a str', #Test a str + 123, #Test int + None, #Test None + datetime.datetime.now(), #Test datetime + ]) +def test_model_with_input(test_input): + with patch('flask_restful_swagger.swagger.add_model') as mock_add_model: + assert swagger.model(test_input) == test_input + mock_add_model.assert_called_once_with(test_input) + + + From eca24ded1607ecf04e6ddcbc75cff43a7bb79ce6 Mon Sep 17 00:00:00 2001 From: David Lieu Date: Mon, 18 Nov 2019 16:30:23 -0500 Subject: [PATCH 2/4] testing: Add test for operation(...) --- tests/test_operation.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/test_operation.py diff --git a/tests/test_operation.py b/tests/test_operation.py new file mode 100644 index 0000000..dcbb797 --- /dev/null +++ b/tests/test_operation.py @@ -0,0 +1,30 @@ +import datetime +import pytest +from flask_restful_swagger import swagger + + +def empty_func(): + pass + +def func_with_many_args(arg1, arg2, arg3, kwarg1=None, kwarg2=None): + allargs = (arg1, arg2, arg3, kwarg1, kwarg2) + print('func_with_many_args: %s, %s, %s, %s, %s' % allargs) + +class EmptyClass: + pass + + +@pytest.mark.parametrize("plain_input,swagger_kwargs", [ + (empty_func, {'arg1': None, 'arg2': None}), + (func_with_many_args, {'arg1': None, 'arg2': None}), + (EmptyClass, {'arg1': None}), + (EmptyClass(), {'arg1': None}), + ]) +def test_operation(plain_input, swagger_kwargs): + _add_swagger_attr_wrapper = swagger.operation(**swagger_kwargs) + swaggered_input = _add_swagger_attr_wrapper(plain_input) + + + assert hasattr(swaggered_input, '__swagger_attr') + assert swaggered_input.__swagger_attr == swagger_kwargs + From 794c6e09ec92477665b7af87f5e2f49a35abd08f Mon Sep 17 00:00:00 2001 From: David Lieu Date: Tue, 19 Nov 2019 09:49:15 -0500 Subject: [PATCH 3/4] testing: Run linting tools on test_model and test_operation --- tests/test_model.py | 28 +++++++++++++++------------- tests/test_operation.py | 25 +++++++++++++++---------- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/tests/test_model.py b/tests/test_model.py index 051df58..6c97961 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -1,24 +1,26 @@ import datetime +from unittest.mock import patch + import pytest + from flask_restful_swagger import swagger -from unittest.mock import patch -class TestEmptyClass(): +class TestEmptyClass: pass -@pytest.mark.parametrize("test_input", [ - TestEmptyClass, #Test a class - 'im a str', #Test a str - 123, #Test int - None, #Test None - datetime.datetime.now(), #Test datetime - ]) +@pytest.mark.parametrize( + "test_input", + [ + TestEmptyClass, # Test a class + "im a str", # Test a str + 123, # Test int + None, # Test None + datetime.datetime.now(), # Test datetime + ], +) def test_model_with_input(test_input): - with patch('flask_restful_swagger.swagger.add_model') as mock_add_model: + with patch("flask_restful_swagger.swagger.add_model") as mock_add_model: assert swagger.model(test_input) == test_input mock_add_model.assert_called_once_with(test_input) - - - diff --git a/tests/test_operation.py b/tests/test_operation.py index dcbb797..b8b123b 100644 --- a/tests/test_operation.py +++ b/tests/test_operation.py @@ -1,30 +1,35 @@ import datetime + import pytest + from flask_restful_swagger import swagger def empty_func(): pass + def func_with_many_args(arg1, arg2, arg3, kwarg1=None, kwarg2=None): allargs = (arg1, arg2, arg3, kwarg1, kwarg2) - print('func_with_many_args: %s, %s, %s, %s, %s' % allargs) + print("func_with_many_args: %s, %s, %s, %s, %s" % allargs) + class EmptyClass: pass -@pytest.mark.parametrize("plain_input,swagger_kwargs", [ - (empty_func, {'arg1': None, 'arg2': None}), - (func_with_many_args, {'arg1': None, 'arg2': None}), - (EmptyClass, {'arg1': None}), - (EmptyClass(), {'arg1': None}), - ]) +@pytest.mark.parametrize( + "plain_input,swagger_kwargs", + [ + (empty_func, {"arg1": None, "arg2": None}), + (func_with_many_args, {"arg1": None, "arg2": None}), + (EmptyClass, {"arg1": None}), + (EmptyClass(), {"arg1": None}), + ], +) def test_operation(plain_input, swagger_kwargs): _add_swagger_attr_wrapper = swagger.operation(**swagger_kwargs) swaggered_input = _add_swagger_attr_wrapper(plain_input) - - assert hasattr(swaggered_input, '__swagger_attr') + assert hasattr(swaggered_input, "__swagger_attr") assert swaggered_input.__swagger_attr == swagger_kwargs - From 300040cec30af9804fefa90b2852300573188ecc Mon Sep 17 00:00:00 2001 From: David Lieu Date: Tue, 19 Nov 2019 09:55:47 -0500 Subject: [PATCH 4/4] testing: Fix unused import on test_operation --- tests/test_operation.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/test_operation.py b/tests/test_operation.py index b8b123b..c28b8a5 100644 --- a/tests/test_operation.py +++ b/tests/test_operation.py @@ -1,5 +1,3 @@ -import datetime - import pytest from flask_restful_swagger import swagger