dev-python/multipart: new package, add 0.2.4

Signed-off-by: Julien Roy <julien@jroy.ca>
This commit is contained in:
Julien Roy
2023-04-12 20:46:32 -04:00
parent ff5af599ea
commit f55f598ee7
4 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST multipart-0.2.4.tar.gz 22300 BLAKE2B 02e14136559b4af50938b4ab025f84055e8aa51d97e0f3415a6b6b9986ba72dd7226080592a8d603a94e2f4598ef7d0a4772e9bbef01121e10fce5cf483cd5e7 SHA512 8df8bad1f68d41e841e407f276745e7cb7352e9fb8c5d43569a7e5c4d8c0ae429e440933017244d01182271a12a6f43a4d15e353b1082df9563cbf9d6eb2c7f6

View File

@@ -0,0 +1,35 @@
From 4d4ac6b79c453918ebf40c690e8d57d982ee840b Mon Sep 17 00:00:00 2001
From: Colin Watson <cjwatson@debian.org>
Date: Fri, 9 Apr 2021 16:54:49 +0100
Subject: [PATCH] Don't test semicolon separators in urlencoded data
Python no longer accepts ";" as a separator for `urllib.parse.parse_qs`
by default (https://bugs.python.org/issue42967), causing the multipart
test suite to fail with recent Python versions (3.6.13, 3.7.10, 3.8.8,
3.9.2, 3.10.0a6).
While we could detect the availability of the `separator` argument and
pass it, since `application/x-www-form-urlencoded` data in `POST` and
`PUT` requests is probably not an issue for web cache poisoning, the
current HTML spec seems clear that only "&" should be considered, so
follow along with Python's API change.
---
test/test_multipart.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/test/test_multipart.py b/test/test_multipart.py
index 38c69d1..6fe864f 100644
--- a/test/test_multipart.py
+++ b/test/test_multipart.py
@@ -233,10 +233,9 @@ def test_empty(self):
def test_urlencoded(self):
for ctype in ('application/x-www-form-urlencoded', 'application/x-url-encoded'):
self.env['CONTENT_TYPE'] = ctype
- forms, files = self.parse('a=b&c=d;e=f')
+ forms, files = self.parse('a=b&c=d')
self.assertEqual(forms['a'], 'b')
self.assertEqual(forms['c'], 'd')
- self.assertEqual(forms['e'], 'f')
def test_urlencoded_latin1(self):
for ctype in ('application/x-www-form-urlencoded', 'application/x-url-encoded'):

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<name>Julien Roy</name>
<email>julien@jroy.ca</email>
</maintainer>
<longdescription>
This module provides a parser for the multipart/form-data format. It can read from a file, a socket or a WSGI environment. The parser can be used to replace cgi.FieldStorage to work around its limitations.
</longdescription>
<upstream>
<maintainer>
<name>Marcel Hellkamp</name>
<email>marc@gsites.de</email>
</maintainer>
<bugs-to>https://github.com/defnull/multipart/issues</bugs-to>
<remote-id type="github">defnull/multipart</remote-id>
<remote-id type="pypi">multipart</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,28 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{9..11} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="Multipart parser for Python 3"
HOMEPAGE="https://github.com/defnull/multipart"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
distutils_enable_tests unittest
PATCHES=(
# Merged in master but no release since, so backporting it
"${FILESDIR}/multipart-urlencoded-test.patch"
)
src_test() {
cd "${S}/test" || die
distutils-r1_src_test
}