Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-bottle for openSUSE:Factory checked in at 2023-02-23 16:28:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-bottle (Old) and /work/SRC/openSUSE:Factory/.python-bottle.new.1706 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-bottle" Thu Feb 23 16:28:03 2023 rev:21 rq:1067066 version:0.12.24 Changes: -------- --- /work/SRC/openSUSE:Factory/python-bottle/python-bottle.changes 2022-08-05 19:50:34.825390495 +0200 +++ /work/SRC/openSUSE:Factory/.python-bottle.new.1706/python-bottle.changes 2023-02-23 16:31:03.193297775 +0100 @@ -1,0 +2,8 @@ +Tue Feb 21 18:22:20 UTC 2023 - Benoît Monin <[email protected]> + +- update to version 0.12.24: bugfix release + * Fix fapws3 link + * fix: Route.get_config typo + * fix #1111: Unicode multipart/form-data values in python3 + +------------------------------------------------------------------- Old: ---- bottle-0.12.23.tar.gz New: ---- bottle-0.12.24.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-bottle.spec ++++++ --- /var/tmp/diff_new_pack.LSCT6I/_old 2023-02-23 16:31:03.717300795 +0100 +++ /var/tmp/diff_new_pack.LSCT6I/_new 2023-02-23 16:31:03.721300818 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-bottle # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-bottle -Version: 0.12.23 +Version: 0.12.24 Release: 0 Summary: WSGI framework for small web applications License: MIT ++++++ bottle-0.12.23.tar.gz -> bottle-0.12.24.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.23/PKG-INFO new/bottle-0.12.24/PKG-INFO --- old/bottle-0.12.23/PKG-INFO 2022-08-03 15:42:04.593679000 +0200 +++ new/bottle-0.12.24/PKG-INFO 2023-02-21 12:41:48.223560600 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: bottle -Version: 0.12.23 +Version: 0.12.24 Summary: Fast and simple WSGI-framework for small web-applications. Home-page: http://bottlepy.org/ Author: Marcel Hellkamp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.23/bottle.egg-info/PKG-INFO new/bottle-0.12.24/bottle.egg-info/PKG-INFO --- old/bottle-0.12.23/bottle.egg-info/PKG-INFO 2022-08-03 15:42:04.000000000 +0200 +++ new/bottle-0.12.24/bottle.egg-info/PKG-INFO 2023-02-21 12:41:48.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: bottle -Version: 0.12.23 +Version: 0.12.24 Summary: Fast and simple WSGI-framework for small web-applications. Home-page: http://bottlepy.org/ Author: Marcel Hellkamp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.23/bottle.py new/bottle-0.12.24/bottle.py --- old/bottle-0.12.23/bottle.py 2022-08-03 15:39:27.000000000 +0200 +++ new/bottle-0.12.24/bottle.py 2023-02-21 12:39:15.000000000 +0100 @@ -16,7 +16,7 @@ from __future__ import with_statement __author__ = 'Marcel Hellkamp' -__version__ = '0.12.23' +__version__ = '0.12.24' __license__ = 'MIT' # The gevent server adapter needs to patch some modules before they are imported @@ -565,7 +565,7 @@ def get_config(self, key, default=None): ''' Lookup a config field and return its value, first checking the route.config, then route.app.config.''' - for conf in (self.config, self.app.conifg): + for conf in (self.config, self.app.config): if key in conf: return conf[key] return default @@ -1095,6 +1095,7 @@ :class:`FormsDict`. All keys and values are strings. File uploads are stored separately in :attr:`files`. """ forms = FormsDict() + forms.recode_unicode = self.POST.recode_unicode for name, item in self.POST.allitems(): if not isinstance(item, FileUpload): forms[name] = item @@ -1118,6 +1119,7 @@ """ files = FormsDict() + files.recode_unicode = self.POST.recode_unicode for name, item in self.POST.allitems(): if isinstance(item, FileUpload): files[name] = item @@ -1243,6 +1245,7 @@ newline='\n') elif py3k: args['encoding'] = 'utf8' + post.recode_unicode = False data = cgi.FieldStorage(**args) self['_cgi.FieldStorage'] = data #http://bugs.python.org/issue18394#msg207958 data = data.list or [] @@ -2870,7 +2873,7 @@ class FapwsServer(ServerAdapter): - """ Extremely fast webserver using libev. See http://www.fapws.org/ """ + """ Extremely fast webserver using libev. See https://github.com/william-os4y/fapws3 """ def run(self, handler): # pragma: no cover import fapws._evwsgi as evwsgi from fapws import base, config diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.23/test/test_environ.py new/bottle-0.12.24/test/test_environ.py --- old/bottle-0.12.23/test/test_environ.py 2022-08-03 15:07:28.000000000 +0200 +++ new/bottle-0.12.24/test/test_environ.py 2023-02-21 12:36:43.000000000 +0100 @@ -328,7 +328,7 @@ def test_multipart(self): """ Environ: POST (multipart files and multible values per key) """ - fields = [('field1','value1'), ('field2','value2'), ('field2','value3')] + fields = [('field1','value1'), ('field2','value2'), ('field2','ä¸é¾')] files = [('file1','filename1.txt','content1'), ('ä¸é¾','ä¸é¾foo.py', 'ä\nö\rü')] e = tools.multipart_environ(fields=fields, files=files) request = BaseRequest(e) @@ -358,10 +358,13 @@ self.assertEqual('value1', request.POST['field1']) self.assertTrue('field1' not in request.files) self.assertEqual('value1', request.forms['field1']) + print(request.forms.dict, request.forms.recode_unicode) + self.assertEqual('ä¸é¾', request.forms['field2']) + self.assertEqual(touni('ä¸é¾'), request.forms.field2) # Field (multi) self.assertEqual(2, len(request.POST.getall('field2'))) - self.assertEqual(['value2', 'value3'], request.POST.getall('field2')) - self.assertEqual(['value2', 'value3'], request.forms.getall('field2')) + self.assertEqual(['value2', 'ä¸é¾'], request.POST.getall('field2')) + self.assertEqual(['value2', 'ä¸é¾'], request.forms.getall('field2')) self.assertTrue('field2' not in request.files) def test_json_empty(self):
