pymod2pkg/tests.py

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()