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:

Properties tested:

>>> 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:

Properties tested:

>>> 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:

Properties tested:

>>> 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:

Properties tested:

>>> 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:

Properties tested:

>>> 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:

Properties tested:

>>> 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:

>>> 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:

>>> 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
'''