diff options
Diffstat (limited to 'tests/unit/test_setup.py')
| -rw-r--r-- | tests/unit/test_setup.py | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/tests/unit/test_setup.py b/tests/unit/test_setup.py deleted file mode 100644 index 626d71b..0000000 --- a/tests/unit/test_setup.py +++ /dev/null @@ -1,257 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2011 OpenStack Foundation. -# All Rights Reserved. -# -# 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 io -import os -import StringIO -import sys -from tempfile import mkstemp - -import fixtures - -from openstack.common import setup -from tests import utils - - -class DiveDir(fixtures.Fixture): - """Dive into given directory and return back on cleanup. - - :ivar path: The target directory. - """ - - def __init__(self, path): - self.path = path - - def setUp(self): - super(DiveDir, self).setUp() - self.old_path = os.getcwd() - os.chdir(self.path) - self.addCleanup(os.chdir, self.old_path) - - -class EmailTestCase(utils.BaseTestCase): - - def test_str_dict_replace(self): - string = 'Johnnie T. Hozer' - mapping = {'T.': 'The'} - self.assertEqual('Johnnie The Hozer', - setup.canonicalize_emails(string, mapping)) - - -class MailmapTestCase(utils.BaseTestCase): - - def setUp(self): - super(MailmapTestCase, self).setUp() - self.useFixture(fixtures.NestedTempfile()) - (fd, self.mailmap) = mkstemp(prefix='openstack', suffix='.setup') - - def test_mailmap_with_fullname(self): - with open(self.mailmap, 'w') as mm_fh: - mm_fh.write("Foo Bar <email@foo.com> Foo Bar <email@bar.com>\n") - self.assertEqual({'<email@bar.com>': '<email@foo.com>'}, - setup.parse_mailmap(self.mailmap)) - - def test_mailmap_with_firstname(self): - with open(self.mailmap, 'w') as mm_fh: - mm_fh.write("Foo <email@foo.com> Foo <email@bar.com>\n") - self.assertEqual({'<email@bar.com>': '<email@foo.com>'}, - setup.parse_mailmap(self.mailmap)) - - def test_mailmap_with_noname(self): - with open(self.mailmap, 'w') as mm_fh: - mm_fh.write("<email@foo.com> <email@bar.com>\n") - self.assertEqual({'<email@bar.com>': '<email@foo.com>'}, - setup.parse_mailmap(self.mailmap)) - - -class GitLogsTest(utils.BaseTestCase): - - def setUp(self): - super(GitLogsTest, self).setUp() - temp_path = self.useFixture(fixtures.TempDir()).path - self.useFixture(DiveDir(temp_path)) - - @staticmethod - def _root_dir(): - # NOTE(yamahata): get root directory of repository - # NOTE(aababilov): use openstack.common.setup.__file__ - # because openstack/common/setup.py uses this - # variable to find the root. - # Do not use test_setup.__file__ variable because - # openstack package can be installed somewhere and - # its location will differ from tests' one. - import openstack.common.setup - return os.path.dirname(os.path.dirname(os.path.dirname( - openstack.common.setup.__file__))) - - def test_write_git_changelog(self): - root_dir = self._root_dir() - exist_files = [os.path.join(root_dir, f) for f in ".git", ".mailmap"] - self.useFixture(fixtures.MonkeyPatch( - "os.path.exists", - lambda path: os.path.abspath(path) in exist_files)) - self.useFixture(fixtures.FakePopen(lambda _: { - "stdout": StringIO.StringIO("Author: Foo Bar <email@bar.com>\n") - })) - - builtin_open = open - - def _fake_open(name, mode): - if name.endswith('.mailmap'): - # StringIO.StringIO doesn't have __exit__ (at least python 2.6) - return io.BytesIO("Foo Bar <email@foo.com> <email@bar.com>\n") - return builtin_open(name, mode) - self.useFixture(fixtures.MonkeyPatch("__builtin__.open", _fake_open)) - - setup.write_git_changelog() - - with open("ChangeLog", "r") as ch_fh: - self.assertTrue("email@foo.com" in ch_fh.read()) - - def _fake_log_output(self, cmd, mapping): - for (k, v) in mapping.items(): - if cmd.startswith(k): - return v - return "" - - def test_generate_authors(self): - author_old = "Foo Foo <email@foo.com>" - author_new = "Bar Bar <email@bar.com>" - co_author = "Foo Bar <foo@bar.com>" - co_author_by = "Co-authored-by: " + co_author - - root_dir = self._root_dir() - - git_log_cmd = ("git --git-dir=%s log --format" % - os.path.join(root_dir, '.git')) - git_co_log_cmd = ("git --git-dir=%s log" % - os.path.join(root_dir, '.git')) - cmd_map = { - git_log_cmd: author_new, - git_co_log_cmd: co_author_by, - } - - exist_files = [os.path.join(root_dir, ".git"), - os.path.abspath("AUTHORS.in")] - self.useFixture(fixtures.MonkeyPatch( - "os.path.exists", - lambda path: os.path.abspath(path) in exist_files)) - - self.useFixture(fixtures.FakePopen(lambda proc_args: { - "stdout": StringIO.StringIO( - self._fake_log_output(proc_args["args"][2], cmd_map)) - })) - - with open("AUTHORS.in", "w") as auth_fh: - auth_fh.write(author_old) - - setup.generate_authors() - - with open("AUTHORS", "r") as auth_fh: - authors = auth_fh.read() - self.assertTrue(author_old in authors) - self.assertTrue(author_new in authors) - self.assertTrue(co_author in authors) - - -class GetCmdClassTest(utils.BaseTestCase): - - def test_get_cmdclass(self): - cmdclass = setup.get_cmdclass() - - self.assertTrue("sdist" in cmdclass) - build_sphinx = cmdclass.get("build_sphinx") - if build_sphinx: - self.useFixture(fixtures.MonkeyPatch( - "sphinx.setup_command.BuildDoc.run", lambda self: None)) - from distutils.dist import Distribution - distr = Distribution() - distr.packages = ("fake_package",) - distr.command_options["build_sphinx"] = {"source_dir": ["a", "."]} - pkg_fixture = fixtures.PythonPackage( - "fake_package", [("fake_module.py", "")]) - self.useFixture(pkg_fixture) - self.useFixture(DiveDir(pkg_fixture.base)) - - build_doc = build_sphinx(distr) - build_doc.run() - - self.assertTrue( - os.path.exists("api/autoindex.rst")) - self.assertTrue( - os.path.exists("api/fake_package.fake_module.rst")) - - -class ParseRequirementsTest(utils.BaseTestCase): - - def setUp(self): - super(ParseRequirementsTest, self).setUp() - self.useFixture(fixtures.NestedTempfile()) - (fd, self.tmp_file) = mkstemp(prefix='openstack', suffix='.setup') - - def test_parse_requirements_normal(self): - with open(self.tmp_file, 'w') as fh: - fh.write("foo\nbar") - self.assertEqual(['foo', 'bar'], - setup.parse_requirements([self.tmp_file])) - - def test_parse_requirements_with_git_egg_url(self): - with open(self.tmp_file, 'w') as fh: - fh.write("-e git://foo.com/zipball#egg=bar") - self.assertEqual(['bar'], setup.parse_requirements([self.tmp_file])) - - def test_parse_requirements_with_http_egg_url(self): - with open(self.tmp_file, 'w') as fh: - fh.write("https://foo.com/zipball#egg=bar") - self.assertEqual(['bar'], setup.parse_requirements([self.tmp_file])) - - def test_parse_requirements_removes_index_lines(self): - with open(self.tmp_file, 'w') as fh: - fh.write("-f foobar") - self.assertEqual([], setup.parse_requirements([self.tmp_file])) - - def test_parse_requirements_removes_argparse(self): - with open(self.tmp_file, 'w') as fh: - fh.write("argparse") - if sys.version_info >= (2, 7): - self.assertEqual([], setup.parse_requirements([self.tmp_file])) - - def test_get_requirement_from_file_empty(self): - actual = setup.get_reqs_from_files([]) - self.assertEqual([], actual) - - -class ParseDependencyLinksTest(utils.BaseTestCase): - - def setUp(self): - super(ParseDependencyLinksTest, self).setUp() - self.useFixture(fixtures.NestedTempfile()) - (fd, self.tmp_file) = mkstemp(prefix="openstack", suffix=".setup") - - def test_parse_dependency_normal(self): - with open(self.tmp_file, "w") as fh: - fh.write("http://test.com\n") - self.assertEqual( - ["http://test.com"], - setup.parse_dependency_links([self.tmp_file])) - - def test_parse_dependency_with_git_egg_url(self): - with open(self.tmp_file, "w") as fh: - fh.write("-e git://foo.com/zipball#egg=bar") - self.assertEqual( - ["git://foo.com/zipball#egg=bar"], - setup.parse_dependency_links([self.tmp_file])) |
