# HG changeset patch # User Bjoern Ricks # Date 1287042590 0 # Node ID ca95be9d033a3f569026fd2709a62998b83e5faa # Parent 31b64ebe4b429b4b821f6de712f29bc07857170e add tests for determine debian upstream version fix calling determine_upstream_version in determine_package_version update authors diff -r 31b64ebe4b42 -r ca95be9d033a test/test_packager.py --- a/test/test_packager.py Wed Oct 13 16:26:53 2010 +0000 +++ b/test/test_packager.py Thu Oct 14 07:49:50 2010 +0000 @@ -1,6 +1,7 @@ -# Copyright (C) 2007, 2008, 2009 by Intevation GmbH +# Copyright (C) 2007-2010 by Intevation GmbH # Authors: # Bernhard Herzog +# Bjoern Ricks # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. @@ -371,6 +372,104 @@ format = srcpkg.get_debian_source_format(pkgbasedir) self.assertEqual("1.0", format) +class TestDetermineUpstreamVersion(unittest.TestCase, FileTestMixin): + + def test_debian_upstream_version(self): + trackdir = self.create_files("track", + [("debian", + [("changelog", """\ +testpkg (1.0.1~-1abc.173) unstable; urgency=low + + * Initial version + + -- TreePKG Thu, 8 Mar 2007 18:34:39 +0100 +""" + )]), + ("pkg", + [("704195-0", + [("status", + ("TreePackagerStatus 0.0\n" + "status: binary_package_created\n" + "start: 2007-09-10 17:16:48\n" + "stop: 2007-09-11 00:07:36\n")), + ("src", []), + ("binary", []) + ] + )] + )] + ) + track = PackageTrack("testtrack", trackdir, "", "", "", "", "") + revpkg = RevisionPackager(track, 704195, 0) + srcpkg = SourcePackager(revpkg) + + pkgbasedir = trackdir + version = srcpkg.determine_upstream_version() + self.assertEqual("1.0.1~", version) + + def test_debian_native_upstream_version(self): + trackdir = self.create_files("track", + [("debian", + [("changelog", """\ +testpkg (1.0.1) unstable; urgency=low + + * Initial version + + -- TreePKG Thu, 8 Mar 2007 18:34:39 +0100 +""" + )]), + ("pkg", + [("704195-0", + [("status", + ("TreePackagerStatus 0.0\n" + "status: binary_package_created\n" + "start: 2007-09-10 17:16:48\n" + "stop: 2007-09-11 00:07:36\n")), + ("src", []), + ("binary", []) + ] + )] + )] + ) + track = PackageTrack("testtrack", trackdir, "", "", "", "", "") + revpkg = RevisionPackager(track, 704195, 0) + srcpkg = SourcePackager(revpkg) + + pkgbasedir = trackdir + version = srcpkg.determine_upstream_version() + self.assertEqual("1.0.1", version) + + def test_debian_epoch_upstream_version(self): + trackdir = self.create_files("track", + [("debian", + [("changelog", """\ +testpkg (4:1.0.1-1abc3) unstable; urgency=low + + * Initial version + + -- TreePKG Thu, 8 Mar 2007 18:34:39 +0100 +""" + )]), + ("pkg", + [("704195-0", + [("status", + ("TreePackagerStatus 0.0\n" + "status: binary_package_created\n" + "start: 2007-09-10 17:16:48\n" + "stop: 2007-09-11 00:07:36\n")), + ("src", []), + ("binary", []) + ] + )] + )] + ) + track = PackageTrack("testtrack", trackdir, "", "", "", "", "") + revpkg = RevisionPackager(track, 704195, 0) + srcpkg = SourcePackager(revpkg) + + pkgbasedir = trackdir + version = srcpkg.determine_upstream_version() + self.assertEqual("1.0.1", version) + class TestRevisionPackager(unittest.TestCase, FileTestMixin): def test_list_source_files(self): diff -r 31b64ebe4b42 -r ca95be9d033a test/test_util.py --- a/test/test_util.py Wed Oct 13 16:26:53 2010 +0000 +++ b/test/test_util.py Thu Oct 14 07:49:50 2010 +0000 @@ -1,6 +1,7 @@ # Copyright (C) 2007, 2008 by Intevation GmbH # Authors: # Bernhard Herzog +# Bjoern Ricks # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. diff -r 31b64ebe4b42 -r ca95be9d033a treepkg/packager.py --- a/treepkg/packager.py Wed Oct 13 16:26:53 2010 +0000 +++ b/treepkg/packager.py Thu Oct 14 07:49:50 2010 +0000 @@ -1,6 +1,8 @@ -# Copyright (C) 2007, 2008, 2009 by Intevation GmbH +# Copyright (C) 2007-2010 by Intevation GmbH # Authors: # Bernhard Herzog +# Bjoern Ricks +# Andre Heinecke # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. @@ -50,11 +52,14 @@ def __init__(self, parent): self.parent = parent - def determine_upstream_version(self, directory) + def determine_upstream_version(self, directory=None): """ Tries to parse the upstream version from a source directory and returns it as a string. """ + + if not directory: + directory = self.track.checkout_dir # TODO: it should be possible to select which files should be searched # for upstream_version @@ -104,7 +109,7 @@ rules_revision = self.parent.rules_revision pkg_revision = self.parent.pkg_revision pkg_date = time.strftime("%Y%m%d", time.localtime()) - upstream_version = determine_upstream_version(directory) + upstream_version = self.determine_upstream_version(directory) version_dict = locals().copy() if type(additionals).__name__=='dict': version_dict.update(additionals) diff -r 31b64ebe4b42 -r ca95be9d033a treepkg/util.py --- a/treepkg/util.py Wed Oct 13 16:26:53 2010 +0000 +++ b/treepkg/util.py Thu Oct 14 07:49:50 2010 +0000 @@ -1,6 +1,8 @@ -# Copyright (C) 2007, 2008 by Intevation GmbH +# Copyright (C) 2007, 2008, 2010 by Intevation GmbH # Authors: # Bernhard Herzog +# Bjoern Ricks +# Andre Heinecke # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details.