commit b4a4d32b559d6ac76ba012cfd6f8ed72ab1da28f Author: dogsheng <960055655@qq.com> Date: Tue Nov 19 11:53:49 2019 +0800 Package init diff --git a/0.3.6.tar.gz b/0.3.6.tar.gz new file mode 100644 index 0000000..d0b71c3 Binary files /dev/null and b/0.3.6.tar.gz differ diff --git a/0001-Fix-arguments-with-type-list-705.patch b/0001-Fix-arguments-with-type-list-705.patch new file mode 100644 index 0000000..5f39816 --- /dev/null +++ b/0001-Fix-arguments-with-type-list-705.patch @@ -0,0 +1,62 @@ +From f71b4f61d96c43748ca1cb9002f874a8d8276312 Mon Sep 17 00:00:00 2001 +From: Stephen Pascoe +Date: Wed, 4 Oct 2017 01:01:47 +0100 +Subject: [PATCH] Fix arguments with type=list (#705) + +Closes #681 +--- + flask_restful/reqparse.py | 2 +- + tests/test_reqparse.py | 25 +++++++++++++++++++++++++ + 2 files changed, 26 insertions(+), 1 deletion(-) + +diff --git a/flask_restful/reqparse.py b/flask_restful/reqparse.py +index 8fe142e..527bc94 100644 +--- flask_restful/reqparse.py ++++ flask_restful/reqparse.py +@@ -176,7 +176,7 @@ class Argument(object): + values = source.getlist(name) + else: + values = source.get(name) +- if not isinstance(values, collections.MutableSequence): ++ if not (isinstance(values, collections.MutableSequence) and self.action == 'append'): + values = [values] + + for value in values: +diff --git a/tests/test_reqparse.py b/tests/test_reqparse.py +index ce9ce30..df18ead 100644 +--- tests/test_reqparse.py ++++ tests/test_reqparse.py +@@ -891,5 +891,30 @@ class ReqParseTestCase(unittest.TestCase): + self.assertEquals(args['int1'], 1) + self.assertEquals(args['int2'], 2) + ++ def test_list_argument(self): ++ app = Flask(__name__) ++ ++ parser = RequestParser() ++ parser.add_argument('arg1', location='json', type=list) ++ ++ with app.test_request_context('/bubble', method="post", ++ data=json.dumps({'arg1': ['foo', 'bar']}), ++ content_type='application/json'): ++ args = parser.parse_args() ++ self.assertEquals(args['arg1'], ['foo', 'bar']) ++ ++ def test_list_argument_dict(self): ++ app = Flask(__name__) ++ ++ parser = RequestParser() ++ parser.add_argument('arg1', location='json', type=list) ++ ++ with app.test_request_context('/bubble', method="post", ++ data=json.dumps({'arg1': [{'foo': 1, 'bar': 2}]}), ++ content_type='application/json'): ++ args = parser.parse_args() ++ self.assertEquals(args['arg1'], [{'foo': 1, 'bar': 2}]) ++ ++ + if __name__ == '__main__': + unittest.main() +-- +2.17.0.rc1 + diff --git a/0002-Support-aniso8601-3.0-in-tests.patch b/0002-Support-aniso8601-3.0-in-tests.patch new file mode 100644 index 0000000..832bce9 --- /dev/null +++ b/0002-Support-aniso8601-3.0-in-tests.patch @@ -0,0 +1,25 @@ +From 54979f0a49b2217babc53c5b65b5df10b6de8e05 Mon Sep 17 00:00:00 2001 +From: Josh Friend +Date: Thu, 29 Mar 2018 14:55:35 -0400 +Subject: [PATCH] Support aniso8601 >3.0 in tests + +--- + tests/test_inputs.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_inputs.py b/tests/test_inputs.py +index 90a2fb0..6cb9e9b 100644 +--- tests/test_inputs.py ++++ tests/test_inputs.py +@@ -417,7 +417,7 @@ def test_bad_isointervals(): + for bad_interval in bad_intervals: + yield ( + assert_raises, +- ValueError, ++ Exception, + inputs.iso8601interval, + bad_interval, + ) +-- +2.17.0 + diff --git a/0003-Fix-tests_api-list-traceback.patch b/0003-Fix-tests_api-list-traceback.patch new file mode 100644 index 0000000..77cc629 --- /dev/null +++ b/0003-Fix-tests_api-list-traceback.patch @@ -0,0 +1,27 @@ +commit dfd60ce7c656d95afc2e7c4c1e03be2982cc9a9d +Author: Kamil Páral +Date: Tue Jun 26 12:06:37 2018 +0200 + + test_api: fix traceback + + This is fixed: + ``` + Traceback (most recent call last): + File "/builddir/build/BUILD/flask-restful-0.3.6/tests/test_api.py", line 787, in test_fr_405 + set(['HEAD', 'OPTIONS'] + HelloWorld.methods)) + TypeError: can only concatenate list (not "set") to list + ``` + +diff --git a/tests/test_api.py b/tests/test_api.py +index 26447ae..f34b3f6 100644 +--- a/tests/test_api.py ++++ b/tests/test_api.py +@@ -784,7 +784,7 @@ class APITestCase(unittest.TestCase): + allow = ', '.join(set(resp.headers.get_all('Allow'))) + allow = set(method.strip() for method in allow.split(',')) + self.assertEquals(allow, +- set(['HEAD', 'OPTIONS'] + HelloWorld.methods)) ++ set(['HEAD', 'OPTIONS'] + list(HelloWorld.methods))) + + def test_exception_header_forwarded(self): + """Test that HTTPException's headers are extended properly""" diff --git a/python-flask-restful.remove_q0_testcase.patch b/python-flask-restful.remove_q0_testcase.patch new file mode 100644 index 0000000..1a50171 --- /dev/null +++ b/python-flask-restful.remove_q0_testcase.patch @@ -0,0 +1,29 @@ +--- tests/test_accept.py.orig 2015-11-13 12:06:18.914003153 +0100 ++++ tests/test_accept.py 2015-11-13 12:04:42.786435117 +0100 +@@ -121,26 +121,6 @@ + assert_equals(res.content_type, 'text/plain') + + +- def test_accept_no_default_match_q0_not_acceptable(self): +- """ +- q=0 should be considered NotAcceptable, +- but this depends on werkzeug >= 1.0 which is not yet released +- so this test is expected to fail until we depend on werkzeug >= 1.0 +- """ +- class Foo(flask_restful.Resource): +- def get(self): +- return "data" +- +- app = Flask(__name__) +- api = flask_restful.Api(app, default_mediatype=None) +- +- api.add_resource(Foo, '/') +- +- with app.test_client() as client: +- res = client.get('/', headers=[('Accept', 'application/json; q=0')]) +- assert_equals(res.status_code, 406) +- assert_equals(res.content_type, 'application/json') +- + def test_accept_no_default_accept_highest_quality_of_two(self): + class Foo(flask_restful.Resource): + def get(self): diff --git a/python-flask-restful.spec b/python-flask-restful.spec new file mode 100644 index 0000000..efff9c9 --- /dev/null +++ b/python-flask-restful.spec @@ -0,0 +1,60 @@ +Name: python-flask-restful +Version: 0.3.6 +Release: 9 +Summary: Framework for creating REST APIs +License: BSD +URL: https://www.github.com/flask-restful/flask-restful/ +Source0: https://github.com/flask-restful/flask-restful/archive/%{version}.tar.gz +Patch0: python-flask-restful.remove_q0_testcase.patch +Patch1: 0001-Fix-arguments-with-type-list-705.patch +Patch2: 0002-Support-aniso8601-3.0-in-tests.patch +Patch3: 0003-Fix-tests_api-list-traceback.patch + +BuildArch: noarch +BuildRequires: git gcc pytz python3-setuptools python3-nose python3-mock python3-blinker +BuildRequires: python3-flask python3-six python3-aniso8601 python3-pytz python3-devel python3-crypto + + +%description +Flask-RESTful provides the building blocks for creating a REST API. + +%package -n python3-flask-restful +Summary: Framework for creating REST APIs +Requires: python3-flask +Requires: python3-six +Requires: python3-aniso8601 +Requires: python3-pytz +%{?python_provide:%python_provide python3-flask-restful} + +%description -n python3-flask-restful +Flask-RESTful is Python 3 extension for Flask that adds support +for quickly building REST APIs. + +%prep +%setup -qn flask-restful-%{version} +rm -rf docs/_themes/.gitignore +%patch0 +%patch1 +%patch2 +%patch3 -p1 + +%build +%py3_build + +%install +%py3_install + + +%check +%{__python3} setup.py test + + +%files -n python3-flask-restful +%doc AUTHORS.md README.md examples/ docs/ +%license LICENSE +%{python3_sitelib}/* + + +%changelog +* Fri Nov 8 2019 Buildteam - 0.3.6-9 +- Package Initialization