Mercurial > treepkg
view test/test_info.py @ 413:94a6ae627b31 treepkg-status
implemented CacheDb to store copied Packages from build host
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 23 Jul 2010 16:40:38 +0000 |
parents | e2afbd3c2bf1 |
children | e0539b483b04 |
line wrap: on
line source
# Copyright (C) 2010 by Intevation GmbH # Authors: # Bjoern Ricks <bjoern.ricks@intevation.de> # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. """Tests for treepkg.status.status""" import unittest import os.path import sys test_dir = os.path.dirname(__file__) sys.path.append(os.path.join(test_dir, os.pardir)) sys.path.append(os.path.join(test_dir, os.pardir, "bin")) from treepkg.info.status import * from treepkg.report import get_packager_group from filesupport import FileTestMixin from publishdebianpackages import get_binary_arch from publishdebianpackages import Package from publishdebianpackages import CacheDb class TreepkgInfoTest(unittest.TestCase, FileTestMixin): config_contents = """\ [DEFAULT] #treepkg_dir: /home/builder/mill #tracks_dir: %(treepkg_dir)s/tracks tracks_dir: /home/builder/mill/tracks root_cmd: sudo pbuilder_dir: %(tracks_dir)s/pbuilder builderconfig: %(pbuilder_dir)s/pbuilderrc deb_email: treepkg@example.com deb_fullname: TreePKG pkg_revision_template: treepkg%%(pkg_revision)s handle_dependencies: False [treepkg] instructions_file: %(tracks_dir)s/instructions check_interval: 3600 name: testtreepkginfo [pkg_simple] pkg_basename: simple1 svn_url: svn://example.com/%(name)s/trunk base_dir: %(tracks_dir)s/%(name)s packager_class: treepkginfo_test.%(name)s handle_dependencies: True signing_key_id: abcd1234 changelog_msg_template: Update to feature branch r%%(revision)s version_template: 1.0.svn%%(revision)s """ files = [("treepkg.cfg", config_contents), ("treepkginfo_test", [("__init__.py", ""), ("simple.py", "\n".join(["class SourcePackager:", " pass", ""])), ])] def setUp(self): self.directory = self.create_files("treepkg", self.files) self.old_path = sys.path sys.path = [self.directory] + sys.path def tearDown(self): sys.path = self.old_path def test_createinfo(self): config_file = os.path.join(self.directory, "treepkg.cfg") tpkginfo = TreepkgInfo(config_file) tpkgrootinfo = tpkginfo.tpkgroot.info self.assertEquals("testtreepkginfo", tpkgrootinfo.name) class TreepkgRootInfoTest(unittest.TestCase): def test_toxml(self): status = TreepkgRootInfo("testtreepkg") dom = status.toxml() xml = dom.toxml() self.assertEquals("<info><name>testtreepkg</name></info>", xml) class TestPublishDebianPackages(unittest.TestCase, FileTestMixin): def test_get_binary_arch(self): source = get_binary_arch("source") self.assertEquals("source", source) binary_armel = get_binary_arch("armel") self.assertEquals("binary-armel", binary_armel) binary_armel = get_binary_arch("binary-armel") self.assertEquals("binary-armel", binary_armel) def test_cache_db(self): tmpdir = self.create_test_specific_temp_dir() package = Package("/tmp/abc/abc_0.1_i386.deb", "abc", "abc_0.1_i386.deb", "/source/abc/abc_0.1_i386.deb", "binary-i386", "1234567") # tmpfile = self.create_temp_file("cachedb1", "abc") # with self.assertRaises(Exception): # db = CacheDb(tmpfile) dbfile = os.path.join(tmpdir, "cachedb2") db = CacheDb(dbfile) db.add_package(package) # test get_package and get_timestamp package2 = db.get_package(package.filename) self.assertNotEquals(None, package2) self.assertEquals(package.filename, package2.filename) self.assertEquals(package.name, package2.name) self.assertEquals(package.sourcepath, package2.sourcepath) self.assertEquals(package.arch, package2.arch) self.assertEquals(package.md5sum, package2.md5sum) # test get_old_packages package3 = Package("/tmp/foo/foo_0.2.i386.deb", "foo", "foo_0.2_i386.deb", "/tmp/foo/foo_0.2.i386.deb", "binary-i386", "987654321") db.add_package(package3) oldpackages = db.get_old_packages([package.filename]) self.assertEquals(1, len(oldpackages)) packages = db.get_packages() self.assertEquals(2, len(packages)) db.remove_packages([package.filename for package in oldpackages]) packages = db.get_packages() self.assertEquals(1, len(packages)) if __name__ == '__main__': unittest.main()