2009-07-24 23:00:45 -03:00
|
|
|
#
|
|
|
|
# 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. """
|
|
|
|
|
2010-05-23 12:06:15 -03:00
|
|
|
from tito.common import *
|
2009-07-24 23:00:45 -03:00
|
|
|
|
|
|
|
import unittest
|
|
|
|
|
2011-12-05 14:37:07 -05:00
|
|
|
|
2009-07-24 23:00:45 -03:00
|
|
|
class CommonTests(unittest.TestCase):
|
|
|
|
|
|
|
|
def test_normalize_class_name(self):
|
|
|
|
""" Test old spacewalk.releng namespace is converted to tito. """
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("tito.builder.Builder",
|
2009-07-24 23:00:45 -03:00
|
|
|
normalize_class_name("tito.builder.Builder"))
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("tito.builder.Builder",
|
2009-07-24 23:00:45 -03:00
|
|
|
normalize_class_name("spacewalk.releng.builder.Builder"))
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("tito.tagger.VersionTagger",
|
2009-07-24 23:00:45 -03:00
|
|
|
normalize_class_name("spacewalk.releng.tagger.VersionTagger"))
|
|
|
|
|
2010-05-23 12:06:15 -03:00
|
|
|
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"
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals(expected, replace_version(line,
|
2010-05-23 12:06:15 -03:00
|
|
|
"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"))
|
|
|
|
|
2012-09-07 14:16:05 +02:00
|
|
|
def test_extract_sha1(self):
|
|
|
|
ls_remote_output = "Could not chdir to home directory\n" + \
|
|
|
|
"fe87e2b75ed1850718d99c797cc171b88bfad5ca ref/origin/sometag"
|
|
|
|
self.assertEquals("fe87e2b75ed1850718d99c797cc171b88bfad5ca",
|
|
|
|
extract_sha1(ls_remote_output))
|
2011-12-05 14:37:07 -05:00
|
|
|
|
2011-10-13 11:28:44 -04:00
|
|
|
class VersionMathTest(unittest.TestCase):
|
|
|
|
def test_increase_version_minor(self):
|
|
|
|
line = "1.0.0"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1.0.1"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_version(line))
|
|
|
|
|
|
|
|
def test_increase_version_major(self):
|
|
|
|
line = "1.0"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1.1"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_version(line))
|
|
|
|
|
|
|
|
def test_increase_release(self):
|
|
|
|
line = "1"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "2"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_version(line))
|
|
|
|
|
2013-02-26 08:55:54 -04:00
|
|
|
def test_underscore_release(self):
|
|
|
|
line = "1_PG5"
|
|
|
|
expected = "2_PG5"
|
|
|
|
self.assertEquals(expected, increase_version(line))
|
|
|
|
|
2011-10-13 11:28:44 -04:00
|
|
|
def test_increase_versionless(self):
|
|
|
|
line = "%{app_version}"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "%{app_version}"
|
|
|
|
self.assertEquals(expected, increase_version(line))
|
2011-10-13 11:28:44 -04:00
|
|
|
|
|
|
|
def test_increase_release_with_rpm_cruft(self):
|
|
|
|
line = "1%{?dist}"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "2%{?dist}"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_version(line))
|
|
|
|
|
|
|
|
def test_increase_release_with_zstream(self):
|
|
|
|
line = "1%{?dist}.1"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1%{?dist}.2"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_version(line))
|
|
|
|
|
|
|
|
def test_unknown_version(self):
|
|
|
|
line = "somethingstrange"
|
2013-02-26 08:55:54 -04:00
|
|
|
expected = "somethingstrange"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_version(line))
|
|
|
|
|
|
|
|
def test_empty_string(self):
|
|
|
|
line = ""
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = ""
|
|
|
|
self.assertEquals(expected, increase_version(line))
|
2011-10-13 11:28:44 -04:00
|
|
|
|
|
|
|
def test_increase_zstream(self):
|
|
|
|
line = "1%{?dist}"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1%{?dist}.1"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_zstream(line))
|
|
|
|
|
|
|
|
def test_increase_zstream_already_appended(self):
|
|
|
|
line = "1%{?dist}.1"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1%{?dist}.2"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, increase_zstream(line))
|
|
|
|
|
|
|
|
def test_reset_release_with_rpm_cruft(self):
|
|
|
|
line = "2%{?dist}"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1%{?dist}"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, reset_release(line))
|
|
|
|
|
|
|
|
def test_reset_release_with_more_rpm_cruft(self):
|
|
|
|
line = "2.beta"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1.beta"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, reset_release(line))
|
|
|
|
|
|
|
|
def test_reset_release(self):
|
|
|
|
line = "2"
|
2011-12-05 14:37:07 -05:00
|
|
|
expected = "1"
|
2011-10-13 11:28:44 -04:00
|
|
|
self.assertEquals(expected, reset_release(line))
|
2011-01-14 16:37:58 -04:00
|
|
|
|
2011-12-05 14:37:07 -05:00
|
|
|
|
2011-01-14 16:37:58 -04:00
|
|
|
class ExtractBugzillasTest(unittest.TestCase):
|
|
|
|
|
|
|
|
def test_single_line(self):
|
2011-01-24 17:32:11 -04:00
|
|
|
commit_log = "- 123456: Did something interesting."
|
2011-01-14 16:37:58 -04:00
|
|
|
results = extract_bzs(commit_log)
|
|
|
|
self.assertEquals(1, len(results))
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("Resolves: #123456 - Did something interesting.",
|
2011-01-14 16:58:03 -04:00
|
|
|
results[0])
|
2011-01-14 16:37:58 -04:00
|
|
|
|
|
|
|
def test_single_with_dash(self):
|
2011-01-24 17:32:11 -04:00
|
|
|
commit_log = "- 123456 - Did something interesting."
|
2011-01-14 16:37:58 -04:00
|
|
|
results = extract_bzs(commit_log)
|
|
|
|
self.assertEquals(1, len(results))
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("Resolves: #123456 - Did something interesting.",
|
2011-01-14 16:58:03 -04:00
|
|
|
results[0])
|
2011-01-14 16:37:58 -04:00
|
|
|
|
|
|
|
def test_single_with_no_spaces(self):
|
2011-01-24 17:32:11 -04:00
|
|
|
commit_log = "- 123456-Did something interesting."
|
2011-01-14 16:37:58 -04:00
|
|
|
results = extract_bzs(commit_log)
|
|
|
|
self.assertEquals(1, len(results))
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("Resolves: #123456 - Did something interesting.",
|
2011-01-14 16:58:03 -04:00
|
|
|
results[0])
|
2011-01-14 16:37:58 -04:00
|
|
|
|
|
|
|
def test_diff_format(self):
|
2011-01-24 17:32:11 -04:00
|
|
|
commit_log = "+- 123456: Did something interesting."
|
2011-01-14 16:37:58 -04:00
|
|
|
results = extract_bzs(commit_log)
|
|
|
|
self.assertEquals(1, len(results))
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("Resolves: #123456 - Did something interesting.",
|
2011-01-14 16:58:03 -04:00
|
|
|
results[0])
|
2011-01-14 16:37:58 -04:00
|
|
|
|
|
|
|
def test_single_line_no_bz(self):
|
2011-01-24 17:32:11 -04:00
|
|
|
commit_log = "- Did something interesting."
|
2011-01-14 16:37:58 -04:00
|
|
|
results = extract_bzs(commit_log)
|
|
|
|
self.assertEquals(0, len(results))
|
|
|
|
|
|
|
|
def test_multi_line(self):
|
2011-01-24 17:32:11 -04:00
|
|
|
commit_log = "- 123456: Did something interesting.\n- Another commit.\n" \
|
|
|
|
"- 456789: A third commit."
|
2011-01-14 16:37:58 -04:00
|
|
|
results = extract_bzs(commit_log)
|
|
|
|
self.assertEquals(2, len(results))
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("Resolves: #123456 - Did something interesting.",
|
2011-01-14 16:58:03 -04:00
|
|
|
results[0])
|
2011-12-05 14:37:07 -05:00
|
|
|
self.assertEquals("Resolves: #456789 - A third commit.",
|
2011-01-14 16:58:03 -04:00
|
|
|
results[1])
|