diff options
author | Guido Günther <agx@sigxcpu.org> | 2013-04-29 20:55:40 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2013-04-29 21:14:18 +0200 |
commit | 43e60bb76e80c6ca7be1ee1da582fe78c5465349 (patch) | |
tree | 415cea02d452df14d26c25344601c7be3b03fe9b | |
parent | 45c2346f6a52aec196dd89b8d09d8b06d05b8867 (diff) |
Make parse_dsc a classmethod of DscFile
so we have the object creation close to the object itself.
-rw-r--r-- | gbp/deb/__init__.py | 11 | ||||
-rw-r--r-- | gbp/deb/dscfile.py | 8 | ||||
-rw-r--r-- | gbp/scripts/import_dsc.py | 4 | ||||
-rw-r--r-- | gbp/scripts/import_dscs.py | 7 | ||||
-rw-r--r-- | tests/12_test_deb.py | 6 | ||||
-rw-r--r-- | tests/14_test_gbp_import_dscs.py | 14 |
6 files changed, 25 insertions, 25 deletions
diff --git a/gbp/deb/__init__.py b/gbp/deb/__init__.py index bff4783..41fc8fd 100644 --- a/gbp/deb/__init__.py +++ b/gbp/deb/__init__.py @@ -26,7 +26,6 @@ from gbp.git import GitRepositoryError # Make sure these are available with 'import gbp.deb' from gbp.deb.changelog import ChangeLog, NoChangeLogError from gbp.deb.policy import DebianPkgPolicy -from gbp.deb.dscfile import DscFile class DpkgCompareVersions(gbpc.Command): cmd='/usr/bin/dpkg' @@ -52,16 +51,6 @@ class DpkgCompareVersions(gbpc.Command): return 0 -def parse_dsc(dscfile): - """parse dsc by creating a DscFile object""" - try: - dsc = DscFile(dscfile) - except IOError as err: - raise GbpError("Error reading dsc file: %s" % err) - - return dsc - - def parse_changelog_repo(repo, branch, filename): """ Parse the changelog file from given branch in the git diff --git a/gbp/deb/dscfile.py b/gbp/deb/dscfile.py index 6f450e2..abaf690 100644 --- a/gbp/deb/dscfile.py +++ b/gbp/deb/dscfile.py @@ -110,4 +110,12 @@ class DscFile(object): def __str__(self): return "<%s object %s>" % (self.__class__.__name__, self.dscfile) + @classmethod + def parse(cls, filename): + try: + dsc = cls(filename) + except IOError as err: + raise GbpError("Error reading dsc file: %s" % err) + return dsc + # vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: diff --git a/gbp/scripts/import_dsc.py b/gbp/scripts/import_dsc.py index 7ed0e36..11c47e8 100644 --- a/gbp/scripts/import_dsc.py +++ b/gbp/scripts/import_dsc.py @@ -27,7 +27,7 @@ import pipes import time import gbp.command_wrappers as gbpc from gbp.pkg import UpstreamSource -from gbp.deb import parse_dsc +from gbp.deb.dscfile import DscFile from gbp.deb.git import (DebianGitRepository, GitRepositoryError) from gbp.deb.changelog import ChangeLog from gbp.git import rfc822_date_to_git @@ -263,7 +263,7 @@ def main(argv): else: dsc = pkg - src = parse_dsc(dsc) + src = DscFile.parse(dsc) if src.pkgformat not in [ '1.0', '3.0' ]: raise GbpError("Importing %s source format not yet supported." % src.pkgformat) if options.verbose: diff --git a/gbp/scripts/import_dscs.py b/gbp/scripts/import_dscs.py index 565f6df..e15808f 100644 --- a/gbp/scripts/import_dscs.py +++ b/gbp/scripts/import_dscs.py @@ -21,7 +21,8 @@ import os import sys import tempfile import gbp.command_wrappers as gbpc -from gbp.deb import parse_dsc, DpkgCompareVersions +from gbp.deb import DpkgCompareVersions +from gbp.deb.dscfile import DscFile from gbp.errors import GbpError from gbp.git import GitRepository, GitRepositoryError from gbp.scripts import import_dsc @@ -119,7 +120,7 @@ def main(argv): else: for arg in argv[::-1]: if arg.endswith('.dsc'): - dscs.append(parse_dsc(arg)) + dscs.append(DscFile.parse(arg)) import_args.remove(arg) if not use_debsnap and not dscs: @@ -128,7 +129,7 @@ def main(argv): if use_debsnap: dirs['tmp'] = os.path.abspath(tempfile.mkdtemp()) - dscs = [ parse_dsc(f) for f in fetch_snapshots(pkg, dirs['tmp']) ] + dscs = [ DscFile.parse(f) for f in fetch_snapshots(pkg, dirs['tmp']) ] dscs.sort(cmp=dsc_cmp) importer = GitImportDsc(import_args) diff --git a/tests/12_test_deb.py b/tests/12_test_deb.py index 8a35ac5..d46f987 100644 --- a/tests/12_test_deb.py +++ b/tests/12_test_deb.py @@ -7,6 +7,8 @@ from . import context import os, tempfile, unittest import gbp.deb + +from gbp.deb.dscfile import DscFile from gbp.command_wrappers import CommandExecFailed class TestDscFile(unittest.TestCase): @@ -51,9 +53,9 @@ Files: def tearDown(self): os.unlink(self.dscfile.name) - def test_parse_dsc_file(self): + def test_dscfile_parse(self): """Test parsing a valid dsc file""" - dsc = gbp.deb.parse_dsc(self.dscfile.name) + dsc = DscFile.parse(self.dscfile.name) self.assertEqual(dsc.version, '0.9.12-4') diff --git a/tests/14_test_gbp_import_dscs.py b/tests/14_test_gbp_import_dscs.py index 3e4772f..9482ea8 100644 --- a/tests/14_test_gbp_import_dscs.py +++ b/tests/14_test_gbp_import_dscs.py @@ -45,16 +45,16 @@ class DscStub(object): self.filename = filename self.version = version -def stub_parse_dsc(filename): - # filename is like file1.dsc, file2.dsc, use - # the digit as version number - version = filename[4] - return DscStub(filename, version) - + @classmethod + def parse(cls, filename): + # filename is like file1.dsc, file2.dsc, use + # the digit as version number + version = filename[4] + return cls(filename, version) # hook up stubs import_dscs.GitImportDsc = StubGitImportDsc -import_dscs.parse_dsc = stub_parse_dsc +import_dscs.DscFile = DscStub class TestImportDscs(testutils.DebianGitTestRepo): """Test L{gbp.scripts.import_dscs}'s """ |