# # Copyright (c) 2008-2009 Red Hat, Inc. # # This software is licensed to you under the GNU General Public License, # version 2 (GPLv2). There is NO WARRANTY for this software, express or # implied, including the implied warranties of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 # along with this software; if not, see # http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. # # Red Hat trademarks are not licensed under GPLv2. No permission is # granted to use or replicate Red Hat trademarks that are incorporated # in this software or its documentation. """ Pure unit tests for tito's common module. """ from tito.common import * import unittest class CommonTests(unittest.TestCase): def test_normalize_class_name(self): """ Test old spacewalk.releng namespace is converted to tito. """ self.assertEquals("tito.builder.Builder", normalize_class_name("tito.builder.Builder")) self.assertEquals("tito.builder.Builder", normalize_class_name("spacewalk.releng.builder.Builder")) self.assertEquals("tito.tagger.VersionTagger", normalize_class_name("spacewalk.releng.tagger.VersionTagger")) def test_replace_version_leading_whitespace(self): line = " version='1.0'\n" expected = " version='2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3")) def test_replace_version_no_whitespace(self): line = "version='1.0'\n" expected = "version='2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3")) def test_replace_version_some_whitespace(self): line = "version = '1.0'\n" expected = "version = '2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3")) def test_replace_version_double_quote(self): line = 'version="1.0"\n' expected = 'version="2.5.3"\n' self.assertEquals(expected, replace_version(line, "2.5.3")) def test_replace_version_trailing_chars(self): line = "version = '1.0', blah blah blah\n" expected = "version = '2.5.3', blah blah blah\n" self.assertEquals(expected, replace_version(line, "2.5.3")) def test_replace_version_crazy_old_version(self): line = "version='1.0asjhd82371kjsdha98475h87asd7---asdai.**&'\n" expected = "version='2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3")) def test_replace_version_crazy_new_version(self): line = "version='1.0'\n" expected = "version='91asj.;]][[a]sd[]'\n" self.assertEquals(expected, replace_version(line, "91asj.;]][[a]sd[]")) def test_replace_version_uppercase(self): line = "VERSION='1.0'\n" expected = "VERSION='2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3")) def test_replace_version_no_match(self): line = "this isn't a version fool.\n" self.assertEquals(line, replace_version(line, "2.5.3")) class ExtractBugzillasTest(unittest.TestCase): def test_single_line(self): commit_log = "123456: Did something interesting." results = extract_bzs(commit_log) self.assertEquals(1, len(results)) self.assertEquals("Resolves: #123456 - Did something interesting.", results[0]) def test_single_with_dash(self): commit_log = "123456 - Did something interesting." results = extract_bzs(commit_log) self.assertEquals(1, len(results)) self.assertEquals("Resolves: #123456 - Did something interesting.", results[0]) def test_single_with_no_spaces(self): commit_log = "123456-Did something interesting." results = extract_bzs(commit_log) self.assertEquals(1, len(results)) self.assertEquals("Resolves: #123456 - Did something interesting.", results[0]) def test_diff_format(self): commit_log = "+ 123456: Did something interesting." results = extract_bzs(commit_log) self.assertEquals(1, len(results)) self.assertEquals("Resolves: #123456 - Did something interesting.", results[0]) def test_single_line_no_bz(self): commit_log = "Did something interesting." results = extract_bzs(commit_log) self.assertEquals(0, len(results)) def test_multi_line(self): commit_log = "123456: Did something interesting.\nAnother commit.\n" \ "456789: A third commit." results = extract_bzs(commit_log) self.assertEquals(2, len(results)) self.assertEquals("Resolves: #123456 - Did something interesting.", results[0]) self.assertEquals("Resolves: #456789 - A third commit.", results[1])