def test_update_spec2(self): """Another test for spec autoupdate functionality""" tmp_spec = os.path.join(self.tmpdir, 'gbp-test2.spec') shutil.copy2(os.path.join(SPEC_DIR, 'gbp-test2.spec'), tmp_spec) reference_spec = os.path.join(SPEC_DIR, 'gbp-test2-reference2.spec') spec = SpecFile(tmp_spec) spec.update_patches(['1.patch', '2.patch'], { '1.patch': { 'if': 'true' }, '2.patch': { 'ifarch': '%ix86' } }) spec.set_tag('VCS', None, 'myvcstag') spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True) # Test updating patches again, removing the VCS tag and re-writing # changelog reference_spec = os.path.join(SPEC_DIR, 'gbp-test2-reference.spec') spec.update_patches(['new.patch'], {'new.patch': {'if': '1'}}) spec.set_tag('VCS', None, '') spec.set_changelog("* Wed Feb 05 2014 Name <email> 2\n- New entry\n\n") spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True)
def test_changelog(self): """Test changelog methods""" spec_filepath = os.path.join(SPEC_DIR, "gbp-test2.spec") spec = SpecFile(spec_filepath) # Read changelog eq_(spec.get_changelog(), "* Tue Feb 04 2014 Name <email> 1\n- My change\n\n\n") # Set changelog and check again new_text = "* Wed Feb 05 2014 Name <email> 2\n- New entry\n\n\n" spec.set_changelog(new_text) eq_(spec.get_changelog(), new_text)
def test_changelog(self): """Test changelog methods""" spec_filepath = os.path.join(SPEC_DIR, 'gbp-test2.spec') spec = SpecFile(spec_filepath) # Read changelog eq_(spec.get_changelog(), "* Tue Feb 04 2014 Name <email> 1\n- My change\n\n\n") # Set changelog and check again new_text = "* Wed Feb 05 2014 Name <email> 2\n- New entry\n\n\n" spec.set_changelog(new_text) eq_(spec.get_changelog(), new_text)
def test_update_spec(self): """Test spec autoupdate functionality""" # Create temporary spec file tmp_spec = os.path.join(self.tmpdir, 'gbp-test.spec') shutil.copy2(os.path.join(SPEC_DIR, 'gbp-test.spec'), tmp_spec) reference_spec = os.path.join(SPEC_DIR, 'gbp-test-reference.spec') spec = SpecFile(tmp_spec) spec.update_patches(['new.patch'], {}) spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True) # Test adding the VCS tag and adding changelog reference_spec = os.path.join(SPEC_DIR, 'gbp-test-reference2.spec') spec.set_tag('VCS', None, 'myvcstag') spec.set_changelog("* Wed Feb 05 2014 Name <email> 1\n- New entry\n") spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True)
class ChangelogFile(object): """Container for changelog file, whether it be a standalone changelog or a spec file""" def __init__(self, file_path): parser = ChangelogParser(RpmPkgPolicy) if os.path.splitext(file_path)[1] == '.spec': gbp.log.debug("Using spec file '%s' as changelog" % file_path) self._file = SpecFile(file_path) self.changelog = parser.raw_parse_string(self._file.get_changelog()) else: self._file = os.path.abspath(file_path) if not os.path.exists(file_path): gbp.log.info("Changelog '%s' not found, creating new " "changelog file" % file_path) self.changelog = Changelog(RpmPkgPolicy) else: gbp.log.debug("Using changelog file '%s'" % file_path) self.changelog = parser.raw_parse_file(self._file) # Parse topmost section and try to determine the start commit if self.changelog.sections: self.changelog.sections[0] = parser.parse_section( self.changelog.sections[0]) def write(self): """Write changelog file to disk""" if isinstance(self._file, SpecFile): self._file.set_changelog(str(self.changelog)) self._file.write_spec_file() else: with open(self._file, 'w') as fobj: fobj.write(str(self.changelog)) @property def path(self): """File path""" if isinstance(self._file, SpecFile): return self._file.specpath else: return self._file
class ChangelogFile(object): """Container for changelog file, whether it be a standalone changelog or a spec file""" def __init__(self, file_path): parser = ChangelogParser(RpmPkgPolicy) if os.path.splitext(file_path)[1] == '.spec': gbp.log.debug("Using spec file '%s' as changelog" % file_path) self._file = SpecFile(file_path) self.changelog = parser.raw_parse_string( self._file.get_changelog()) else: self._file = os.path.abspath(file_path) if not os.path.exists(file_path): gbp.log.info("Changelog '%s' not found, creating new " "changelog file" % file_path) self.changelog = Changelog(RpmPkgPolicy) else: gbp.log.debug("Using changelog file '%s'" % file_path) self.changelog = parser.raw_parse_file(self._file) # Parse topmost section and try to determine the start commit if self.changelog.sections: self.changelog.sections[0] = parser.parse_section( self.changelog.sections[0]) def write(self): """Write changelog file to disk""" if isinstance(self._file, SpecFile): self._file.set_changelog(str(self.changelog)) self._file.write_spec_file() else: with open(self._file, 'w') as fobj: fobj.write(str(self.changelog)) @property def path(self): """File path""" if isinstance(self._file, SpecFile): return self._file.specpath else: return self._file
def test_update_spec2(self): """Another test for spec autoupdate functionality""" tmp_spec = os.path.join(self.tmpdir, "gbp-test2.spec") shutil.copy2(os.path.join(SPEC_DIR, "gbp-test2.spec"), tmp_spec) reference_spec = os.path.join(SPEC_DIR, "gbp-test2-reference2.spec") spec = SpecFile(tmp_spec) spec.update_patches(["1.patch", "2.patch"], {"1.patch": {"if": "true"}, "2.patch": {"ifarch": "%ix86"}}) spec.set_tag("VCS", None, "myvcstag") spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True) # Test updating patches again, removing the VCS tag and re-writing # changelog reference_spec = os.path.join(SPEC_DIR, "gbp-test2-reference.spec") spec.update_patches(["new.patch"], {"new.patch": {"if": "1"}}) spec.set_tag("VCS", None, "") spec.set_changelog("* Wed Feb 05 2014 Name <email> 2\n- New entry\n\n") spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True)
def test_update_spec2(self): """Another test for spec autoupdate functionality""" tmp_spec = os.path.join(self.tmpdir, 'gbp-test2.spec') shutil.copy2(os.path.join(SPEC_DIR, 'gbp-test2.spec'), tmp_spec) reference_spec = os.path.join(SPEC_DIR, 'gbp-test2-reference2.spec') spec = SpecFile(tmp_spec) spec.update_patches(['1.patch', '2.patch'], {'1.patch': {'if': 'true'}, '2.patch': {'ifarch': '%ix86'}}) spec.set_tag('VCS', None, 'myvcstag') spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True) # Test updating patches again, removing the VCS tag and re-writing # changelog reference_spec = os.path.join(SPEC_DIR, 'gbp-test2-reference.spec') spec.update_patches(['new.patch'], {'new.patch': {'if': '1'}}) spec.set_tag('VCS', None, '') spec.set_changelog("* Wed Feb 05 2014 Name <email> 2\n- New entry\n\n") spec.write_spec_file() eq_(filecmp.cmp(tmp_spec, reference_spec), True)