Package tests :: Module test_Changelog

[hide private]
[frames] | no frames]

# Module test_Changelog

Test gbp.deb.changelog.ChangeLog

Functions | [hide private]

setup() Setup test module |

test_parse_debian_only() Parse a the changelog of debian only package |

test_parse_no_eopch() Parse a the changelog of a package without eopch |

test_parse_eopch() Parse a the changelog of a package without epoch |

test_parse_name() Methods tested: |

test_parse_last_mod() Test author, email and date of last modification |

test_parse_sections() Test if we can parse sections out of the changelog |

test_add_section() Test if we can add a section to an existant changelog |

test_add_entry() Test if we can add an entry to an existant changelog |

Variables | [hide private]

| cl_debian = ``'``git-buildpackage (0.5.32) unstable; urgency=low\n``...``
| cl_upstream = ``'``python-dateutil (1.0-1) unstable; urgency=low\n``...``
| cl_epoch = ``'``xserver-xorg-video-nv (1:1.2.0-3) unstable; urgenc``...``
| __package__ = ``'``tests``'``

Function Details | [hide private]

### test_parse_debian_only()

Parse a the changelog of debian only package

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__

Properties tested:

- gbp.deb.changelog.ChangeLog.version
- gbp.deb.changelog.ChangeLog.debian_version
- gbp.deb.changelog.ChangeLog.upstream_version
- gbp.deb.changelog.ChangeLog.epoch
- gbp.deb.changelog.ChangeLog.noepoch

    >>> import gbp.deb.changelog
    >>> cl = gbp.deb.changelog.ChangeLog(cl_debian)
    >>> cl.version
    '0.5.32'
    >>> cl.version == cl['Version']
    True
    >>> cl.debian_version
    '0.5.32'
    >>> cl.debian_version == cl['Debian-Version']
    True
    >>> cl.noepoch
    '0.5.32'
    >>> cl.noepoch == cl['NoEpoch-Version']
    True
    >>> cl.epoch
    >>> cl.upstream_version

### test_parse_no_eopch()

Parse a the changelog of a package without eopch

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__
- gbp.deb.changelog.ChangeLog.has_epoch

Properties tested:

- gbp.deb.changelog.ChangeLog.version
- gbp.deb.changelog.ChangeLog.debian_version
- gbp.deb.changelog.ChangeLog.upstream_version
- gbp.deb.changelog.ChangeLog.epoch
- gbp.deb.changelog.ChangeLog.noepoch

    >>> import gbp.deb.changelog
    >>> cl = gbp.deb.changelog.ChangeLog(cl_upstream)
    >>> cl.version
    '1.0-1'
    >>> cl.version == cl['Version']
    True
    >>> cl.debian_version
    '1'
    >>> cl.debian_version == cl['Debian-Version']
    True
    >>> cl.noepoch
    '1.0-1'
    >>> cl.noepoch == cl['NoEpoch-Version']
    True
    >>> cl.epoch
    >>> cl.upstream_version
    '1.0'
    >>> cl.has_epoch()
    False

### test_parse_eopch()

Parse a the changelog of a package without epoch

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__
- gbp.deb.changelog.ChangeLog.has_epoch

Properties tested:

- gbp.deb.changelog.ChangeLog.version
- gbp.deb.changelog.ChangeLog.debian_version
- gbp.deb.changelog.ChangeLog.upstream_version
- gbp.deb.changelog.ChangeLog.epoch
- gbp.deb.changelog.ChangeLog.noepoch

    >>> import gbp.deb.changelog
    >>> cl = gbp.deb.changelog.ChangeLog(cl_epoch)
    >>> cl.version
    '1:1.2.0-3'
    >>> cl.version == cl['Version']
    True
    >>> cl.debian_version
    '3'
    >>> cl.debian_version == cl['Debian-Version']
    True
    >>> cl.noepoch
    '1.2.0-3'
    >>> cl.noepoch == cl['NoEpoch-Version']
    True
    >>> cl.epoch
    '1'
    >>> cl.upstream_version
    '1.2.0'
    >>> cl.has_epoch()
    True

### test_parse_name()

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__

Properties tested:

- gbp.deb.changelog.ChangeLog.name

    >>> import gbp.deb.changelog
    >>> cl = gbp.deb.changelog.ChangeLog(cl_debian)
    >>> cl.name
    'git-buildpackage'

### test_parse_last_mod()

Test author, email and date of last modification

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__

Properties tested:

- gbp.deb.changelog.ChangeLog.name
- gbp.deb.changelog.ChangeLog.email
- gbp.deb.changelog.ChangeLog.date

    >>> import gbp.deb.changelog
    >>> cl = gbp.deb.changelog.ChangeLog(cl_debian)
    >>> cl.author.startswith('Guido')
    True
    >>> cl.email
    'agx@sigxcpu.org'
    >>> cl.date
    'Mon, 17 Oct 2011 10:15:22 +0200'

### test_parse_sections()

Test if we can parse sections out of the changelog

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__
- gbp.deb.changelog.ChangeLogSection.__init__
- gbp.deb.changelog.ChangeLogSection.parse

Properties tested:

- gbp.deb.changelog.ChangeLog.sections

    >>> import gbp.deb.changelog
    >>> cl = gbp.deb.changelog.ChangeLog(cl_debian)
    >>> cl.sections[0].package
    'git-buildpackage'
    >>> cl.sections[0].version
    '0.5.32'
    >>> cl.sections[1].package
    'git-buildpackage'
    >>> cl.sections[1].version
    '0.5.31'

### test_add_section()

Test if we can add a section to an existant changelog

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__
- gbp.deb.changelog.ChangeLog._parse
- gbp.deb.changelog.ChangeLog.add_section
- gbp.deb.changelog.ChangeLog.spawn_dch

    >>> import os
    >>> import tempfile
    >>> import shutil
    >>> import gbp.deb.changelog
    >>> from tests.testutils import OsReleaseFile
    >>> os_release = OsReleaseFile('/etc/lsb-release')
    >>> olddir = os.path.abspath(os.path.curdir)
    >>> testdir = tempfile.mkdtemp(prefix='gbp-test-changelog-')
    >>> testdebdir = os.path.join(testdir, 'debian')
    >>> testclname = os.path.join(testdebdir, "changelog")
    >>> os.mkdir(testdebdir)
    >>> clh = open(os.path.join(testdebdir, "changelog"), "w")
    >>> clh.write(cl_debian)
    >>> clh.close()
    >>> os.chdir(testdir)
    >>> os.path.abspath(os.path.curdir) == testdir
    True
    >>> cl = gbp.deb.changelog.ChangeLog(filename=testclname)
    >>> cl.add_section(msg=["Test add section"], distribution=None, author="Debian Maintainer", email="maint@debian.org")
    >>> cl = gbp.deb.changelog.ChangeLog(filename=testclname)
    >>> version = '0.5.32ubuntu1' if os_release['DISTRIB_ID'] == 'Ubuntu' else '0.5.33'
    >>> cl.version == version
    True
    >>> cl.debian_version == version
    True
    >>> distributions = ['UNRELEASED', os_release['DISTRIB_CODENAME'] or 'unstable']
    >>> cl['Distribution'] in distributions
    True
    >>> 'Test add section' in cl['Changes']
    True
    >>> os.chdir(olddir)
    >>> os.path.abspath(os.path.curdir) == olddir
    True
    >>> shutil.rmtree(testdir, ignore_errors=True)

### test_add_entry()

Test if we can add an entry to an existant changelog

Methods tested:

- gbp.deb.changelog.ChangeLog.__init__
- gbp.deb.changelog.ChangeLog._parse
- gbp.deb.changelog.ChangeLog.add_entry
- gbp.deb.changelog.ChangeLog.spawn_dch

    >>> import os
    >>> import tempfile
    >>> import shutil
    >>> import gbp.deb.changelog
    >>> from tests.testutils import OsReleaseFile
    >>> os_release = OsReleaseFile('/etc/lsb-release')
    >>> olddir = os.path.abspath(os.path.curdir)
    >>> testdir = tempfile.mkdtemp(prefix='gbp-test-changelog-')
    >>> testdebdir = os.path.join(testdir, 'debian')
    >>> testclname = os.path.join(testdebdir, "changelog")
    >>> os.mkdir(testdebdir)
    >>> clh = open(os.path.join(testdebdir, "changelog"), "w")
    >>> clh.write(cl_debian)
    >>> clh.close()
    >>> os.chdir(testdir)
    >>> os.path.abspath(os.path.curdir) == testdir
    True
    >>> cl = gbp.deb.changelog.ChangeLog(filename=testclname)
    >>> cl.add_section(msg=["Test add section"], distribution=None, author="Debian Maintainer", email="maint@debian.org")
    >>> cl.add_entry(msg=["Test add entry"], author="Debian Maintainer", email="maint@debian.org")
    >>> cl = gbp.deb.changelog.ChangeLog(filename=testclname)
    >>> version = '0.5.32ubuntu1' if os_release['DISTRIB_ID'] == 'Ubuntu' else '0.5.33'
    >>> cl.version == version
    True
    >>> cl.debian_version == version
    True
    >>> distributions = ['UNRELEASED', os_release['DISTRIB_CODENAME'] or 'unstable']
    >>> cl['Distribution'] in distributions
    True
    >>> 'Test add entry' in cl['Changes']
    True
    >>> os.chdir(olddir)
    >>> os.path.abspath(os.path.curdir) == olddir
    True
    >>> shutil.rmtree(testdir, ignore_errors=True)

Variables Details | [hide private]

### cl_debian

Value:

      '''git-buildpackage (0.5.32) unstable; urgency=low

        * [efe9220] Use known_compressions in guess_upstream_version too
          (Closes: #645477)
        * [e984baf] git-import-orig: fix --filter

       -- Guido G\xc3\xbcnther <agx@sigxcpu.org>  Mon, 17 Oct 2011 10:15:22
      +0200
      ...

### cl_upstream

Value:

      '''python-dateutil (1.0-1) unstable; urgency=low

        * Initial release (Closes: #386256)

       -- Guido G\xc3\xbcnther <agx@sigxcpu.org>  Wed,  6 Sep 2006 10:33:06
      +0200
      '''

### cl_epoch

Value:

      '''xserver-xorg-video-nv (1:1.2.0-3) unstable; urgency=low

        [ Steve Langasek ]
        * Upload to unstable

       -- David Nusinow <dnusinow@debian.org>  Mon, 18 Sep 2006 19:57:45 -04
      00
      '''