mirror of
https://github.com/rpm-software-management/tito.git
synced 2025-02-24 04:32:46 +00:00

Use RawConfigParser instead of ConfigParser to avoid... Traceback (most recent call last): File "/home/sandbox/test/functional/multiproject_tests.py", line 68, in setUp self.create_project(TEST_PKG_1, os.path.join(self.repo_dir, 'pkg1')) File "/home/sandbox/test/functional/fixture.py", line 198, in create_project tito('tag --keep-version --debug --accept-auto-changelog') File "/home/sandbox/test/functional/fixture.py", line 103, in tito return CLI().main(argstring.split(' ')) File "/home/sandbox/src/tito/cli.py", line 222, in main return module.main(argv) File "/home/sandbox/src/tito/cli.py", line 671, in main offline=self.options.offline) File "/home/sandbox/src/tito/tagger/main.py", line 51, in __init__ ConfigObject.__init__(self, config=config) File "/home/sandbox/src/tito/config_object.py", line 38, in __init__ config.get(section, options)) File "/usr/lib64/python3.3/configparser.py", line 1184, in set super().set(section, option, value) File "/usr/lib64/python3.3/configparser.py", line 889, in set value) File "/usr/lib64/python3.3/configparser.py", line 399, in before_set "position %d" % (value, tmp_value.find('%'))) nose.proxy.ValueError: ValueError: invalid interpolation syntax in '%s (%ae)' at position 0
76 lines
3.8 KiB
Python
76 lines
3.8 KiB
Python
|
|
import unittest
|
|
from tito.buildparser import BuildTargetParser
|
|
from tito.compat import *
|
|
from tito.exception import TitoException
|
|
|
|
|
|
class BuildTargetParserTests(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
unittest.TestCase.setUp(self)
|
|
self.valid_branches = ["branch1", "branch2"]
|
|
|
|
self.release_target = "project-x.y.z"
|
|
self.releasers_config = RawConfigParser()
|
|
self.releasers_config.add_section(self.release_target)
|
|
self.releasers_config.set(self.release_target, "build_targets",
|
|
"branch1:project-x.y.z-candidate")
|
|
|
|
def test_parser_gets_correct_targets(self):
|
|
parser = BuildTargetParser(self.releasers_config, self.release_target,
|
|
self.valid_branches)
|
|
release_targets = parser.get_build_targets()
|
|
self.assertTrue("branch1" in release_targets)
|
|
self.assertEqual("project-x.y.z-candidate", release_targets["branch1"])
|
|
self.assertFalse("branch2" in release_targets)
|
|
|
|
def test_invalid_branch_raises_exception(self):
|
|
self.releasers_config.set(self.release_target, "build_targets",
|
|
"invalid-branch:project-x.y.z-candidate")
|
|
parser = BuildTargetParser(self.releasers_config, self.release_target,
|
|
self.valid_branches)
|
|
self.assertRaises(TitoException, parser.get_build_targets)
|
|
|
|
def test_missing_semicolon_raises_exception(self):
|
|
self.releasers_config.set(self.release_target, "build_targets",
|
|
"invalid-branchproject-x.y.z-candidate")
|
|
parser = BuildTargetParser(self.releasers_config, self.release_target,
|
|
self.valid_branches)
|
|
self.assertRaises(TitoException, parser.get_build_targets)
|
|
|
|
def test_empty_branch_raises_exception(self):
|
|
self.releasers_config.set(self.release_target, "build_targets",
|
|
":project-x.y.z-candidate")
|
|
parser = BuildTargetParser(self.releasers_config, self.release_target,
|
|
self.valid_branches)
|
|
self.assertRaises(TitoException, parser.get_build_targets)
|
|
|
|
def test_empty_target_raises_exception(self):
|
|
self.releasers_config.set(self.release_target, "build_targets",
|
|
"branch1:")
|
|
parser = BuildTargetParser(self.releasers_config, self.release_target,
|
|
self.valid_branches)
|
|
self.assertRaises(TitoException, parser.get_build_targets)
|
|
|
|
def test_multiple_spaces_ok(self):
|
|
self.releasers_config.set(self.release_target, "build_targets",
|
|
" branch1:project-x.y.z-candidate ")
|
|
parser = BuildTargetParser(self.releasers_config, self.release_target,
|
|
self.valid_branches)
|
|
release_targets = parser.get_build_targets()
|
|
self.assertEqual(1, len(release_targets))
|
|
self.assertTrue("branch1" in release_targets)
|
|
self.assertEqual("project-x.y.z-candidate", release_targets["branch1"])
|
|
|
|
def test_multiple_branches_supported(self):
|
|
self.releasers_config.set(self.release_target, "build_targets",
|
|
"branch1:project-x.y.z-candidate branch2:second-target")
|
|
parser = BuildTargetParser(self.releasers_config, self.release_target,
|
|
self.valid_branches)
|
|
release_targets = parser.get_build_targets()
|
|
self.assertEquals(2, len(release_targets))
|
|
self.assertTrue("branch1" in release_targets)
|
|
self.assertEqual("project-x.y.z-candidate", release_targets["branch1"])
|
|
self.assertTrue("branch2" in release_targets)
|
|
self.assertEqual("second-target", release_targets['branch2'])
|