Guido Günther <[email protected]> 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

