def test_parse_raw(self):
"""Test parsing of a valid spec file"""
+ assert_raises(NoSpecError, SpecFile, None, None)
+ assert_raises(NoSpecError, SpecFile, 'filename', 'filedata')
+
+ """
with assert_raises(NoSpecError):
SpecFile(None, None)
with assert_raises(NoSpecError):
SpecFile('filename', 'filedata')
+ """
spec_filepath = os.path.join(SPEC_DIR, 'gbp-test.spec')
with open(spec_filepath, 'r') as spec_fd:
assert spec.protected('_patches')() == {}
prev = spec.protected('_delete_tag')('invalidtag', None)
+ assert_raises(GbpError, spec.protected('_set_tag'),
+ 'Version', None, '', prev)
+ assert_raises(GbpError, spec.set_tag,
+ 'invalidtag', None, 'value')
+
+ """
with assert_raises(GbpError):
# Check that setting empty value fails
spec.protected('_set_tag')('Version', None, '', prev)
with assert_raises(GbpError):
# Check that setting invalid tag with public method fails
spec.set_tag('invalidtag', None, 'value')
+ """
# Mangle macros
prev = spec.protected('_delete_special_macro')('patch', -1)
spec.protected('_delete_special_macro')('patch', 123)
spec.protected('_set_special_macro')('patch', 0, 'my new args', prev)
+ assert_raises(GbpError, spec.protected('_delete_special_macro'),
+ 'invalidmacro', 0)
+ assert_raises(GbpError, spec.protected('_set_special_macro'),
+ 'invalidmacro', 0, 'args', prev)
+
+ """
with assert_raises(GbpError):
spec.protected('_delete_special_macro')('invalidmacro', 0)
with assert_raises(GbpError):
spec.protected('_set_special_macro')('invalidmacro', 0, 'args',
prev)
+ """
# Check resulting spec file
spec.write_spec_file()
spec = SpecFileTester(spec_filepath)
# Unknown/invalid section name
+ assert_raises(GbpError, spec.protected('_set_section'),
+ 'patch', 'new content\n')
+ """
with assert_raises(GbpError):
spec.protected('_set_section')('patch', 'new content\n')
+ """
# Multiple sections with the same name
+ assert_raises(GbpError, spec.protected('_set_section'),
+ 'files', '%{_sysconfdir}/foo\n')
+
+ """
with assert_raises(GbpError):
spec.protected('_set_section')('files', '%{_sysconfdir}/foo\n')
+ """
def test_changelog(self):
"""Test changelog methods"""
def test_guess_spec(self):
"""Test guess_spec() function"""
# Spec not found
+ assert_raises(NoSpecError, guess_spec,
+ DATA_DIR, recursive=False)
+
+ """
with assert_raises(NoSpecError):
guess_spec(DATA_DIR, recursive=False)
+ """
+
# Multiple spec files
+ assert_raises(NoSpecError, guess_spec,
+ DATA_DIR, recursive=True)
+ assert_raises(NoSpecError, guess_spec,
+ SPEC_DIR, recursive=False)
+
+ """
with assert_raises(NoSpecError):
guess_spec(DATA_DIR, recursive=True)
with assert_raises(NoSpecError):
guess_spec(SPEC_DIR, recursive=False)
+ """
+
# Spec found
spec = guess_spec(SPEC_DIR, recursive=False,
preferred_name = 'gbp-test2.spec')
repo.commit_all('Add spec file')
# Spec not found
+ assert_raises(NoSpecError, guess_spec_repo,
+ repo, 'HEAD~1', recursive=True)
+ assert_raises(NoSpecError, guess_spec_repo,
+ repo, 'HEAD', recursive=False)
+
+ """
with assert_raises(NoSpecError):
guess_spec_repo(repo, 'HEAD~1', recursive=True)
with assert_raises(NoSpecError):
guess_spec_repo(repo, 'HEAD', recursive=False)
+ """
+
# Spec found
spec = guess_spec_repo(repo, 'HEAD', 'packaging', recursive=False)
spec = guess_spec_repo(repo, 'HEAD', recursive=True)
assert spec.specpath == 'packaging/gbp-test.spec'
# Test spec_from_repo()
+ assert_raises(NoSpecError, spec_from_repo,
+ repo, 'HEAD~1', 'packaging/gbp-test.spec')
+
+ """
with assert_raises(NoSpecError):
spec_from_repo(repo, 'HEAD~1', 'packaging/gbp-test.spec')
+ """
+
spec = spec_from_repo(repo, 'HEAD', 'packaging/gbp-test.spec')
assert spec.specfile == 'gbp-test.spec'
"""Test missing properties"""
time = datetime(2014, 01, 29, 12, 13, 14)
header = _ChangelogHeader(RpmPkgPolicy, time, name="John", revision="1")
+ assert_raises(ChangelogError, str, header)
+
+ """
with assert_raises(ChangelogError):
str(header)
+ """
def test_container(self):
"""Test the container methods of the class"""
def test_parse_section_fail(self):
"""Basic tests for failures of changelog section parsing"""
+ assert_raises(ChangelogError, self.parser.parse_section,
+ self.cl_broken_header_1)
+ assert_raises(ChangelogError, self.parser.parse_section,
+ self.cl_broken_header_2)
+ assert_raises(ChangelogError, self.parser.parse_section,
+ self.cl_broken_header_3)
+ assert_raises(ChangelogError, self.parser.parse_section,
+ self.cl_broken_header_4)
+
+ """
with assert_raises(ChangelogError):
self.parser.parse_section(self.cl_broken_header_1)
with assert_raises(ChangelogError):
self.parser.parse_section(self.cl_broken_header_4)
+ """
def test_parse_changelog_fail(self):
"""Basic tests for changelog parsing failures"""
+ assert_raises(ChangelogError, self.parser.raw_parse_string,
+ self.cl_broken_header_5)
+
+ """
with assert_raises(ChangelogError):
self.parser.raw_parse_string(self.cl_broken_header_5)
+ """
class TestChangelog(object):