204 lines
9.9 KiB
Python
204 lines
9.9 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# Copyright 2015 SUSE Linux GmbH
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import unittest
|
|
|
|
import pymod2pkg
|
|
|
|
|
|
class Pymod2PkgTests(unittest.TestCase):
|
|
def test_get_default_translation_func(self):
|
|
self.assertEqual(pymod2pkg.get_default_tr_func('suse'),
|
|
pymod2pkg.default_suse_tr)
|
|
self.assertEqual(pymod2pkg.get_default_tr_func('ubuntu'),
|
|
pymod2pkg.default_ubuntu_tr)
|
|
self.assertEqual(pymod2pkg.get_default_tr_func('anything'),
|
|
pymod2pkg.default_rdo_tr)
|
|
|
|
def test_default_translation_suse(self):
|
|
self.assertEqual(pymod2pkg.module2package('oslo.db', 'suse'),
|
|
'python-oslo.db')
|
|
self.assertEqual(pymod2pkg.module2package('Babel', 'suse'),
|
|
'python-Babel')
|
|
self.assertEqual(pymod2pkg.module2package(
|
|
'Babel', 'suse', py_vers=['py', 'py2', 'py3']),
|
|
['python-Babel', 'python2-Babel', 'python3-Babel'])
|
|
|
|
def test_translation_suse(self):
|
|
self.assertEqual(pymod2pkg.module2package('nova', 'suse'),
|
|
'openstack-nova')
|
|
self.assertEqual(pymod2pkg.module2package('barbican', 'suse'),
|
|
'openstack-barbican')
|
|
self.assertEqual(pymod2pkg.module2package('aodhclient',
|
|
'suse'),
|
|
'python-aodhclient')
|
|
self.assertEqual(pymod2pkg.module2package('gnocciclient',
|
|
'suse'),
|
|
'python-gnocciclient')
|
|
self.assertEqual(pymod2pkg.module2package('python-cinderclient',
|
|
'suse'),
|
|
'python-cinderclient')
|
|
self.assertEqual(pymod2pkg.module2package('python-neutronclient',
|
|
'suse'),
|
|
'python-neutronclient')
|
|
self.assertEqual(pymod2pkg.module2package('Tempest', 'suse'),
|
|
'openstack-tempest')
|
|
self.assertEqual(pymod2pkg.module2package('tempest', 'suse'),
|
|
'openstack-tempest')
|
|
self.assertEqual(pymod2pkg.module2package('heat-agents', 'suse'),
|
|
'openstack-heat-agents')
|
|
self.assertEqual(pymod2pkg.module2package(
|
|
'openstack-placement', 'suse'), 'openstack-placement')
|
|
|
|
def test_translation_ubuntu(self):
|
|
self.assertEqual(pymod2pkg.module2package('nova', 'ubuntu'),
|
|
'python-nova')
|
|
self.assertEqual(pymod2pkg.module2package('python-cinderclient',
|
|
'ubuntu'),
|
|
'python-cinderclient')
|
|
self.assertEqual(pymod2pkg.module2package('python-neutronclient',
|
|
'ubuntu'),
|
|
'python-neutronclient')
|
|
|
|
def test_default_translation_rdo(self):
|
|
self.assertEqual(pymod2pkg.module2package('oslo.db', 'fedora'),
|
|
'python-oslo-db')
|
|
self.assertEqual(pymod2pkg.module2package('Babel', 'fedora'),
|
|
'python-babel')
|
|
self.assertEqual(pymod2pkg.module2package('nova', 'fedora'),
|
|
'openstack-nova')
|
|
|
|
def test_default_translation_upstream(self):
|
|
self.assertEqual(pymod2pkg.module2upstream('oslo.db'), 'oslo.db')
|
|
self.assertEqual(pymod2pkg.module2upstream('python-glanceclient'),
|
|
'python-glanceclient')
|
|
self.assertEqual(pymod2pkg.module2upstream('openstack-placement'),
|
|
'placement')
|
|
self.assertNotEqual(pymod2pkg.module2upstream('keystoneauth1'),
|
|
'keystoneauth1')
|
|
|
|
def test_translation_horizon_plugins(self):
|
|
self.assertEqual(pymod2pkg.module2package('sahara-dashboard',
|
|
'fedora'),
|
|
'openstack-sahara-ui')
|
|
self.assertEqual(pymod2pkg.module2package('magnum-ui', 'fedora'),
|
|
'openstack-magnum-ui')
|
|
self.assertEqual(pymod2pkg.module2package('zomg-dashboard', 'fedora'),
|
|
'openstack-zomg-ui')
|
|
self.assertEqual(pymod2pkg.module2package('sahara-dashboard',
|
|
'suse'),
|
|
'openstack-horizon-plugin-sahara-ui')
|
|
self.assertEqual(pymod2pkg.module2package('magnum-ui', 'suse'),
|
|
'openstack-horizon-plugin-magnum-ui')
|
|
self.assertEqual(pymod2pkg.module2package(
|
|
'neutron-fwaas-dashboard', 'suse'),
|
|
'openstack-horizon-plugin-neutron-fwaas-ui')
|
|
self.assertEqual(pymod2pkg.module2package(
|
|
'horizon-plugin-neutron-fwaas-ui', 'suse'),
|
|
'python-horizon-plugin-neutron-fwaas-ui')
|
|
self.assertEqual(pymod2pkg.module2package('zomg-dashboard', 'suse'),
|
|
'openstack-horizon-plugin-zomg-ui')
|
|
self.assertEqual(pymod2pkg.module2package('XStatic-jquery-ui', 'suse'),
|
|
'python-XStatic-jquery-ui')
|
|
|
|
def test_translation_tempest_plugins(self):
|
|
self.assertEqual(pymod2pkg.module2package('keystone-tempest-plugin',
|
|
'fedora'),
|
|
'python-keystone-tests-tempest')
|
|
self.assertEqual(pymod2pkg.module2package('zomg-tempest-plugin',
|
|
'fedora'), 'python-zomg-tests-tempest')
|
|
|
|
def test_default_translation_py2py3_suse(self):
|
|
self.assertEqual(pymod2pkg.module2package('oslo.db', 'suse',
|
|
py_vers=['py2', 'py3']),
|
|
['python2-oslo.db', 'python3-oslo.db'])
|
|
self.assertEqual(pymod2pkg.module2package('Babel', 'suse',
|
|
py_vers=['py2', 'py3']),
|
|
['python2-Babel', 'python3-Babel'])
|
|
|
|
def test_translation_py2py3_suse(self):
|
|
self.assertEqual(pymod2pkg.module2package('nova', 'suse',
|
|
py_vers=['py', 'py2', 'py3']),
|
|
['openstack-nova', 'openstack-nova',
|
|
'openstack-nova'])
|
|
self.assertEqual(pymod2pkg.module2package('aodhclient',
|
|
'suse', py_vers=['py2', 'py3']),
|
|
['python2-aodhclient', 'python3-aodhclient'])
|
|
self.assertEqual(pymod2pkg.module2package('gnocciclient',
|
|
'suse', py_vers=['py2', 'py3']),
|
|
['python2-gnocciclient', 'python3-gnocciclient'])
|
|
self.assertEqual(pymod2pkg.module2package(
|
|
'python-cinderclient', 'suse',
|
|
py_vers=['py2', 'py3']),
|
|
['python2-cinderclient', 'python3-cinderclient'])
|
|
self.assertEqual(pymod2pkg.module2package(
|
|
'python-neutronclient', 'suse',
|
|
py_vers=['py2', 'py3']),
|
|
['python2-neutronclient', 'python3-neutronclient'])
|
|
self.assertEqual(pymod2pkg.module2package('Tempest', 'suse',
|
|
py_vers=['py', 'py2', 'py3']),
|
|
['openstack-tempest', 'openstack-tempest',
|
|
'openstack-tempest'])
|
|
self.assertEqual(pymod2pkg.module2package('devel', 'suse',
|
|
py_vers=['py2', 'py3']),
|
|
['python-devel', 'python3-devel'])
|
|
|
|
def test_translation_py2py3_ubuntu(self):
|
|
self.assertEqual(pymod2pkg.module2package('nova', 'ubuntu',
|
|
py_vers=['py2', 'py3']),
|
|
['python-nova', 'python3-nova'])
|
|
self.assertEqual(pymod2pkg.module2package('python-cinderclient',
|
|
'ubuntu', py_vers=['py2', 'py3']),
|
|
['python-cinderclient', 'python3-cinderclient'])
|
|
self.assertEqual(pymod2pkg.module2package(
|
|
'python-neutronclient', 'ubuntu',
|
|
py_vers=['py2', 'py3']),
|
|
['python-neutronclient', 'python3-neutronclient'])
|
|
|
|
def test_default_translation_py2py3_rdo(self):
|
|
self.assertEqual(pymod2pkg.module2package('oslo.db', 'fedora',
|
|
py_vers=['py2', 'py3']),
|
|
['python-oslo-db', 'python3-oslo-db'])
|
|
self.assertEqual(pymod2pkg.module2package('foobar', 'fedora',
|
|
py_vers=['py', 'py2', 'py3']),
|
|
['python-foobar', 'python-foobar', 'python3-foobar'])
|
|
|
|
self.assertEqual(pymod2pkg.module2package('Babel', 'fedora',
|
|
py_vers=['py2', 'py3']),
|
|
['python-babel', 'python3-babel'])
|
|
self.assertEqual(pymod2pkg.module2package('nova', 'fedora',
|
|
py_vers=['py', 'py2', 'py3']),
|
|
['openstack-nova', 'openstack-nova',
|
|
'openstack-nova'])
|
|
|
|
|
|
class RegexRuleTests(unittest.TestCase):
|
|
def test_regex_rule(self):
|
|
|
|
def dummy_tr(mod):
|
|
mod = mod.replace('dashboard', 'ui')
|
|
return "openstack-{}".format(mod), '', ''
|
|
|
|
rule = pymod2pkg.RegexRule(r'\w+-(dashboard|ui)', dummy_tr)
|
|
self.assertEqual(rule('dummy-dashboard', 'rdo'),
|
|
('openstack-dummy-ui', '', ''))
|
|
self.assertEqual(rule('dummy-ui', 'rdo'),
|
|
('openstack-dummy-ui', '', ''))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|