[ussuri][goal] Drop python 2.7 support and testing
OpenStack is dropping the py2.7 support in Ussuri cycle. Complete discussion & schedule can be found in - http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html - https://etherpad.openstack.org/p/drop-python2-support Ussuri Communtiy-wide goal: https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html Change-Id: I340a7909c49e7d2a8c82c668cbdaf9ced7196f67 Sem-Ver: api-break
This commit is contained in:
parent
6889dec2aa
commit
281fd591e7
@ -1,12 +1,10 @@
|
|||||||
- project:
|
- project:
|
||||||
templates:
|
templates:
|
||||||
- check-requirements
|
- check-requirements
|
||||||
- lib-forward-testing
|
|
||||||
- lib-forward-testing-python3
|
- lib-forward-testing-python3
|
||||||
- openstack-cover-jobs
|
- openstack-cover-jobs
|
||||||
- openstack-lower-constraints-jobs
|
- openstack-lower-constraints-jobs
|
||||||
- openstack-python-jobs
|
- openstack-python3-ussuri-jobs
|
||||||
- openstack-python3-train-jobs
|
|
||||||
- periodic-stable-jobs
|
- periodic-stable-jobs
|
||||||
- publish-openstack-docs-pti
|
- publish-openstack-docs-pti
|
||||||
- release-notes-jobs-python3
|
- release-notes-jobs-python3
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
# of appearance. Changing the order has an impact on the overall integration
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
# process, which may cause wedges in the gate later.
|
# process, which may cause wedges in the gate later.
|
||||||
|
|
||||||
sphinx>=1.8.0,<2.0.0;python_version=='2.7' # BSD
|
sphinx>=1.8.0,!=2.1.0 # BSD
|
||||||
sphinx>=1.8.0,!=2.1.0;python_version>='3.4' # BSD
|
|
||||||
openstackdocstheme>=1.18.1 # Apache-2.0
|
openstackdocstheme>=1.18.1 # Apache-2.0
|
||||||
reno>=2.5.0 # Apache-2.0
|
reno>=2.5.0 # Apache-2.0
|
||||||
sphinxcontrib-apidoc>=0.2.0 # BSD
|
sphinxcontrib-apidoc>=0.2.0 # BSD
|
||||||
|
@ -61,18 +61,6 @@ class TranslatorFactoryTest(test_base.BaseTestCase):
|
|||||||
r = tf.primary('some text')
|
r = tf.primary('some text')
|
||||||
self.assertNotIsInstance(r, _message.Message)
|
self.assertNotIsInstance(r, _message.Message)
|
||||||
|
|
||||||
def test_py2(self):
|
|
||||||
_lazy.enable_lazy(False)
|
|
||||||
with mock.patch.object(six, 'PY3', False):
|
|
||||||
with mock.patch('gettext.translation') as translation:
|
|
||||||
trans = mock.Mock()
|
|
||||||
translation.return_value = trans
|
|
||||||
trans.gettext.side_effect = AssertionError(
|
|
||||||
'should have called ugettext')
|
|
||||||
tf = _factory.TranslatorFactory('domain')
|
|
||||||
tf.primary('some text')
|
|
||||||
trans.ugettext.assert_called_with('some text')
|
|
||||||
|
|
||||||
def test_py3(self):
|
def test_py3(self):
|
||||||
_lazy.enable_lazy(False)
|
_lazy.enable_lazy(False)
|
||||||
with mock.patch.object(six, 'PY3', True):
|
with mock.patch.object(six, 'PY3', True):
|
||||||
@ -92,20 +80,6 @@ class TranslatorFactoryTest(test_base.BaseTestCase):
|
|||||||
tf._make_log_translation_func('mylevel')
|
tf._make_log_translation_func('mylevel')
|
||||||
mtf.assert_called_with('domain-log-mylevel')
|
mtf.assert_called_with('domain-log-mylevel')
|
||||||
|
|
||||||
def test_contextual_form_py2(self):
|
|
||||||
_lazy.enable_lazy(False)
|
|
||||||
with mock.patch.object(six, 'PY3', False):
|
|
||||||
with mock.patch('gettext.translation') as translation:
|
|
||||||
trans = mock.Mock()
|
|
||||||
translation.return_value = trans
|
|
||||||
trans.gettext.side_effect = AssertionError(
|
|
||||||
'should have called ugettext')
|
|
||||||
trans.ugettext.return_value = "some text"
|
|
||||||
tf = _factory.TranslatorFactory('domain')
|
|
||||||
tf.contextual_form('context', 'some text')
|
|
||||||
trans.ugettext.assert_called_with(
|
|
||||||
"%s%s%s" % ('context', CONTEXT_SEPARATOR, 'some text'))
|
|
||||||
|
|
||||||
def test_contextual_form_py3(self):
|
def test_contextual_form_py3(self):
|
||||||
_lazy.enable_lazy(False)
|
_lazy.enable_lazy(False)
|
||||||
with mock.patch.object(six, 'PY3', True):
|
with mock.patch.object(six, 'PY3', True):
|
||||||
@ -120,19 +94,6 @@ class TranslatorFactoryTest(test_base.BaseTestCase):
|
|||||||
trans.gettext.assert_called_with(
|
trans.gettext.assert_called_with(
|
||||||
"%s%s%s" % ('context', CONTEXT_SEPARATOR, 'some text'))
|
"%s%s%s" % ('context', CONTEXT_SEPARATOR, 'some text'))
|
||||||
|
|
||||||
def test_plural_form_py2(self):
|
|
||||||
_lazy.enable_lazy(False)
|
|
||||||
with mock.patch.object(six, 'PY3', False):
|
|
||||||
with mock.patch('gettext.translation') as translation:
|
|
||||||
trans = mock.Mock()
|
|
||||||
translation.return_value = trans
|
|
||||||
trans.ngettext.side_effect = AssertionError(
|
|
||||||
'should have called ungettext')
|
|
||||||
tf = _factory.TranslatorFactory('domain')
|
|
||||||
tf.plural_form('single', 'plural', 1)
|
|
||||||
trans.ungettext.assert_called_with(
|
|
||||||
'single', 'plural', 1)
|
|
||||||
|
|
||||||
def test_plural_form_py3(self):
|
def test_plural_form_py3(self):
|
||||||
_lazy.enable_lazy(False)
|
_lazy.enable_lazy(False)
|
||||||
with mock.patch.object(six, 'PY3', True):
|
with mock.patch.object(six, 'PY3', True):
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
Support for Python 2.7 has been dropped. The minimum version of Python now
|
||||||
|
supported is Python 3.6.
|
@ -6,6 +6,7 @@ description-file =
|
|||||||
author = OpenStack
|
author = OpenStack
|
||||||
author-email = openstack-discuss@lists.openstack.org
|
author-email = openstack-discuss@lists.openstack.org
|
||||||
home-page = https://docs.openstack.org/oslo.i18n/latest
|
home-page = https://docs.openstack.org/oslo.i18n/latest
|
||||||
|
python-requires = >=3.6
|
||||||
classifier =
|
classifier =
|
||||||
Environment :: OpenStack
|
Environment :: OpenStack
|
||||||
Intended Audience :: Information Technology
|
Intended Audience :: Information Technology
|
||||||
@ -13,11 +14,12 @@ classifier =
|
|||||||
License :: OSI Approved :: Apache Software License
|
License :: OSI Approved :: Apache Software License
|
||||||
Operating System :: POSIX :: Linux
|
Operating System :: POSIX :: Linux
|
||||||
Programming Language :: Python
|
Programming Language :: Python
|
||||||
Programming Language :: Python :: 2
|
|
||||||
Programming Language :: Python :: 2.7
|
|
||||||
Programming Language :: Python :: 3
|
Programming Language :: Python :: 3
|
||||||
Programming Language :: Python :: 3.6
|
Programming Language :: Python :: 3.6
|
||||||
Programming Language :: Python :: 3.7
|
Programming Language :: Python :: 3.7
|
||||||
|
Programming Language :: Python :: 3 :: Only
|
||||||
|
Programming Language :: Python :: Implementation :: CPython
|
||||||
|
|
||||||
|
|
||||||
[files]
|
[files]
|
||||||
packages =
|
packages =
|
||||||
@ -36,6 +38,3 @@ input_file = oslo_i18n/locale/oslo_i18n.pot
|
|||||||
keywords = _ gettext ngettext l_ lazy_gettext _C:1c,2 _P:1,2
|
keywords = _ gettext ngettext l_ lazy_gettext _C:1c,2 _P:1,2
|
||||||
mapping_file = babel.cfg
|
mapping_file = babel.cfg
|
||||||
output_file = oslo_i18n/locale/oslo_i18n.pot
|
output_file = oslo_i18n/locale/oslo_i18n.pot
|
||||||
|
|
||||||
[bdist_wheel]
|
|
||||||
universal = 1
|
|
||||||
|
8
setup.py
8
setup.py
@ -16,14 +16,6 @@
|
|||||||
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
|
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
|
||||||
import setuptools
|
import setuptools
|
||||||
|
|
||||||
# In python < 2.7.4, a lazy loading of package `pbr` will break
|
|
||||||
# setuptools if some other modules registered functions in `atexit`.
|
|
||||||
# solution from: http://bugs.python.org/issue15881#msg170215
|
|
||||||
try:
|
|
||||||
import multiprocessing # noqa
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
setup_requires=['pbr>=2.0.0'],
|
setup_requires=['pbr>=2.0.0'],
|
||||||
pbr=True)
|
pbr=True)
|
||||||
|
Loading…
Reference in New Issue
Block a user