Accepting request 681513 from devel:languages:python

- Remove online tests:
  * remove-online-tests.patch
- Work with new pycountry:
  * new-pycountry.patch
- Run tests

- Fix fdupes call
- Update to 1.3.1:
  * no obvious changelog

OBS-URL: https://build.opensuse.org/request/show/681513
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-FormEncode?expand=0&rev=13
This commit is contained in:
Dominique Leuenberger 2019-03-05 11:24:50 +00:00 committed by Git OBS Bridge
commit a2045a0469
7 changed files with 169 additions and 37 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e6757280244a0d04e9cef51beeeafb4124087c27b7944c7d41341d0a30f7af78
size 347674

3
FormEncode-1.3.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ada2f51792b1b484e5bb7b6cc14acfc1bc11fafc967cf015cd57e856053ca7f6
size 197305

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ce55ab4cbf3c284e1a3d8f0e2340b5c9201c106e1b34f15eae669143885452a
size 16730

38
new-pycountry.patch Normal file
View File

@ -0,0 +1,38 @@
From: Chris Lamb <lamby@debian.org>
Date: Mon, 6 Aug 2018 22:29:58 +0800
Subject: Use "alpha_2" over "alpha2" for compatibility with newer versions of
pycountry.
---
formencode/national.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/formencode/national.py b/formencode/national.py
index a8514ab..5a55fab 100644
--- a/formencode/national.py
+++ b/formencode/national.py
@@ -85,19 +85,19 @@ elif pycountry:
_l = lambda t: gettext.dgettext('iso639', t)
def get_countries():
- c1 = set([(e.alpha2, _c(e.name)) for e in pycountry.countries])
+ c1 = set([(e.alpha_2, _c(e.name)) for e in pycountry.countries])
ret = c1.union(country_additions + fuzzy_countrynames)
return ret
def get_country(code):
- return _c(pycountry.countries.get(alpha2=code).name)
+ return _c(pycountry.countries.get(alpha_2=code).name)
def get_languages():
- return [(e.alpha2, _l(e.name)) for e in pycountry.languages
- if e.name and getattr(e, 'alpha2', None)]
+ return [(e.alpha_2, _l(e.name)) for e in pycountry.languages
+ if e.name and getattr(e, 'alpha_2', None)]
def get_language(code):
- return _l(pycountry.languages.get(alpha2=code).name)
+ return _l(pycountry.languages.get(alpha_2=code).name)
############################################################

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Mon Mar 4 16:23:43 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Remove online tests:
* remove-online-tests.patch
- Work with new pycountry:
* new-pycountry.patch
- Run tests
-------------------------------------------------------------------
Mon Dec 10 14:55:26 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- Fix fdupes call
- Update to 1.3.1:
* no obvious changelog
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Dec 4 12:48:11 UTC 2018 - Matej Cepl <mcepl@suse.com> Tue Dec 4 12:48:11 UTC 2018 - Matej Cepl <mcepl@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package python-FormEncode # spec file for package python-FormEncode
# #
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -19,21 +19,22 @@
%define oldpython python %define oldpython python
%{?!python_module:%define python_module() python-%{**} python3-%{**}} %{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-FormEncode Name: python-FormEncode
Version: 1.3.0 Version: 1.3.1
Release: 0 Release: 0
Summary: HTML form validation, generation, and conversion package Summary: HTML form validation, generation, and conversion package
License: Python-2.0 License: Python-2.0
Group: Development/Languages/Python Group: Development/Languages/Python
Url: http://formencode.org URL: http://formencode.org
Source: https://files.pythonhosted.org/packages/source/F/FormEncode/FormEncode-%{version}.zip Source: https://files.pythonhosted.org/packages/source/F/FormEncode/FormEncode-%{version}.tar.gz
Source1: FormEncode-doc-infrastructure.tar.gz Patch0: remove-online-tests.patch
# Documentation requirements: Patch1: new-pycountry.patch
BuildRequires: %{python_module nose}
BuildRequires: %{python_module pycountry}
BuildRequires: %{python_module setuptools} BuildRequires: %{python_module setuptools}
BuildRequires: dos2unix
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: python-rpm-macros BuildRequires: python-rpm-macros
BuildRequires: python3-Sphinx BuildRequires: python2-dnspython
BuildRequires: unzip
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch BuildArch: noarch
%ifpython2 %ifpython2
Provides: %{oldpython}-formencode = %{version} Provides: %{oldpython}-formencode = %{version}
@ -46,40 +47,30 @@ FormEncode validates and converts nested structures. It allows for
a declarative form of defining the validation, and decoupled processes a declarative form of defining the validation, and decoupled processes
for filling and generating forms. for filling and generating forms.
%package -n %{name}-doc
Summary: HTML form validation, generation, and conversion package
Group: Development/Libraries/Python
Provides: %{python_module FormEncode-doc = %{version}}
%description -n %{name}-doc
This package contains documentation files for %{name}.
%prep %prep
%setup -q -n FormEncode-%{version} -a1 %setup -q -n FormEncode-%{version}
find . -name \*.txt -exec sed -i 's/\r$//g' {} \; %patch0 -p1
sed -i 's/\r$//g' PKG-INFO README.rst %patch1 -p1
sed -i '/^:date:/d' docs/*.txt # fix build-compare dos2unix README.rst
%build %build
%python_build %python_build
%{_python_use_flavor python3}
python3 setup.py build_sphinx && rm build/sphinx/html/.buildinfo && mv build/sphinx/html html
%install %install
%python_install %python_install
# install documentation # remove misplaced documentation
rm -r %{buildroot}%{python_sitelib}/docs # remove misplaced documentation %python_expand rm -r %{buildroot}%{$python_sitelib}/docs
%fdupes %{buildroot}%{_prefix} %python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
export LANG=en_US.UTF-8
# excluded tests poll dns
%python_expand PYTHONPATH=%{buildroot}%{python_sitelib} nosetests-%{python_bin_suffix} -v -e '(test_cyrillic_email|test_unicode_ascii_subgroup)' formencode/tests
%files %{python_files} %files %{python_files}
%defattr(-,root,root,-)
%doc README.rst %doc README.rst
%{python_sitelib}/* %{python_sitelib}/*
%files -n %{name}-doc
%defattr(-,root,root,-)
%doc html
%changelog %changelog

90
remove-online-tests.patch Normal file
View File

@ -0,0 +1,90 @@
From: Stefano Rivera <stefanor@debian.org>
Date: Sun, 11 Oct 2015 22:20:17 +0200
Subject: remove-dns-tests.diff
Tests that require network (DNS) access
Patch-Name: remove-dns-tests.diff
---
formencode/validators.py | 30 ------------------------------
1 file changed, 30 deletions(-)
diff --git a/formencode/validators.py b/formencode/validators.py
index c332ec9..cfba7c8 100644
--- a/formencode/validators.py
+++ b/formencode/validators.py
@@ -1288,20 +1288,6 @@ class Email(FancyValidator):
'nobody@xn--m7r7ml7t24h.com'
>>> e.to_python('o*reilly@test.com')
'o*reilly@test.com'
- >>> e = Email(resolve_domain=True)
- >>> e.resolve_domain
- True
- >>> e.to_python('doesnotexist@colorstudy.com')
- 'doesnotexist@colorstudy.com'
- >>> e.to_python('test@nyu.edu')
- 'test@nyu.edu'
- >>> # NOTE: If you do not have dnspython installed this example won't work:
- >>> e.to_python('test@thisdomaindoesnotexistithinkforsure.com')
- Traceback (most recent call last):
- ...
- Invalid: The domain of the email address does not exist (the portion after the @: thisdomaindoesnotexistithinkforsure.com)
- >>> e.to_python(u'test@google.com')
- u'test@google.com'
>>> e = Email(not_empty=False)
>>> e.to_python('')
@@ -1429,22 +1415,6 @@ class URL(FancyValidator):
Traceback (most recent call last):
...
Invalid: That is not a valid URL
- >>> u = URL(add_http=False, check_exists=True)
- >>> u.to_python('http://google.com')
- 'http://google.com'
- >>> u.to_python('google.com')
- Traceback (most recent call last):
- ...
- Invalid: You must start your URL with http://, https://, etc
- >>> u.to_python('http://www.formencode.org/does/not/exist/page.html')
- Traceback (most recent call last):
- ...
- Invalid: The server responded that the page could not be found
- >>> u.to_python('http://this.domain.does.not.exist.example.org/test.html')
- ... # doctest: +ELLIPSIS
- Traceback (most recent call last):
- ...
- Invalid: An error occured when trying to connect to the server: ...
If you want to allow addresses without a TLD (e.g., ``localhost``) you can do::
From: "drnlmuller+debian@gmail.com" <drnlmuller+debian@gmail.com>
Date: Tue, 14 Jun 2016 14:40:12 +0200
Subject: Remove tests from test_email that require dns.
Some of the new tests in test_email also require dns. This patch
removes them so the build does not require network access.
---
formencode/tests/test_email.py | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/formencode/tests/test_email.py b/formencode/tests/test_email.py
index 3ebf120..2305454 100644
--- a/formencode/tests/test_email.py
+++ b/formencode/tests/test_email.py
@@ -65,17 +65,3 @@ class TestEmail(unittest.TestCase):
for email, expected in valid_email_addresses:
self.assertEqual(self.validate(email), expected)
-
-
-class TestUnicodeEmailWithResolveDomain(unittest.TestCase):
-
- def setUp(self):
- self.validator = Email(resolve_domain=True)
-
- def test_unicode_ascii_subgroup(self):
- self.assertEqual(self.validator.to_python(
- u'foo@yandex.com'), 'foo@yandex.com')
-
- def test_cyrillic_email(self):
- self.assertEqual(self.validator.to_python(
- u'me@письмо.рф'), u'me@письмо.рф')