Guido Günther <a...@sigxcpu.org> writes: > Hi Daniel, > > sorry for the delay. Real life keeps interfering.
No problem, I hope it's in the good way. [...] >> diff --git a/gbp/deb/changelog.py b/gbp/deb/changelog.py >> index b8c10b8..a410e86 100644 >> --- a/gbp/deb/changelog.py >> +++ b/gbp/deb/changelog.py >> @@ -19,6 +19,7 @@ >> import email >> import os >> import subprocess >> +from gbp import scripts > > We don't want to import scripts itself (since these are the actual > scripts being run). If we need code from there we should move it out > (see below). I think most of the "def" in the scripts/* could be moved somewhere else to be reusable. [...] >> + if package == None and os.path.isfile("debian/control"): >> + try: >> + control = open("debian/control", "r") >> + for line in control: >> + if line.startswith("Source: "): >> + package = line.split()[1] >> + break >> + except Exception, e: >> + raise NoChangeLogError, "Error parsing debian/control: %s" >> % e > > We should probably wrap this in either a Control(object) class or at > least defer this to another function in deb/__init__.py since the > ChangeLog class shouldn't access the control file directly. I was first using locally python-debian, but it was too much for 10 lines. I think creating a Control class is a little to much, or maybe there will be uses of it. > >> + >> + if version == None: >> + version = scripts.dch.guess_version_from_upstream(repo, >> upstream_tag_format, None) >> + if version == None: >> + raise NoChangeLogError, "No suitable version found" >> + >> + scripts.dch.spawn_dch(msg=["debian/changelog: generated by >> git-dch."], >> + newversion=True, version={'version':version}, >> + dch_options="--create --package %s" % package) > > spawn_dch could be moved into gbp/dch.py. It'd be nicer to have this the > ChangeLog class later on but I don't want you to having to do all the > cleanup work. If you have some cleanup plans I could help. I'll need this feature and #64668 to setup an autobuild system at work. [...] >> diff --git a/tests/11_test_changelog_create.py >> b/tests/11_test_changelog_create.py >> new file mode 100644 >> index 0000000..51a8b04 >> --- /dev/null >> +++ b/tests/11_test_changelog_create.py >> @@ -0,0 +1,86 @@ >> +# vim: set fileencoding=utf-8 : >> + >> +"""Test L{Changelog}'s create""" >> + >> +import sys >> +sys.path.insert(0, "..") >> +sys.path.insert(0, ".") > > What is this needed for? I use py.test like this: me@home:~/src/gbp/tests$ py.test 11_11_test_changelog_create.py This permit to use the code from my git repository, I should use a wrapper to set PYTHONPATH like in debian/rules. [...] >> + assert """test-package (1.0-1) UNRELEASED; urgency=low\n""" in lines >> + assert """ * debian/changelog: generated by git-dch.\n""" in lines > > Since you derived from unittest (via DebianGitTestRepo) you can use > self.assertEqual and friends here. Which gives better failure > messages. Thanks, I'll do that. -- Daniel Dehennin Récupérer ma clef GPG: gpg --keyserver pgp.mit.edu --recv-keys 0x7A6FE2DF
pgp3FVXcJjQad.pgp
Description: PGP signature