Mercurial > treepkg
view test/test_util.py @ 441:eadcb1bb54e2
Merged revisions 388-399 via svnmerge from
svn+ssh://svn.wald.intevation.org/treepkg/branches/treepkg-status
........
r388 | bricks | 2010-07-28 10:38:50 +0200 (Mi, 28 Jul 2010) | 3 lines
fix if statement
upload hook should be called if it's not empty
........
r389 | bricks | 2010-07-28 13:38:00 +0200 (Mi, 28 Jul 2010) | 2 lines
only rsync specified architectures from cachedir to publishdir
........
r390 | bricks | 2010-07-29 14:07:57 +0200 (Do, 29 Jul 2010) | 2 lines
introduced after_copy_hook and made rsync upload to publishdir optional
........
r391 | bricks | 2010-07-29 15:43:39 +0200 (Do, 29 Jul 2010) | 3 lines
publish package must be default to get original behaviour
be more verbose at publishing
........
r392 | bricks | 2010-07-29 16:50:53 +0200 (Do, 29 Jul 2010) | 2 lines
fix handling of showing only successfull builds together with num packages
........
r393 | bricks | 2010-07-29 16:52:42 +0200 (Do, 29 Jul 2010) | 2 lines
fixed typo
........
r394 | bricks | 2010-07-29 16:59:10 +0200 (Do, 29 Jul 2010) | 2 lines
fixed another typo
........
r395 | bricks | 2010-07-29 18:05:54 +0200 (Do, 29 Jul 2010) | 3 lines
fixed another typo
treepkg is really slow with many revisions
........
r396 | bricks | 2010-08-02 12:41:55 +0200 (Mo, 02 Aug 2010) | 2 lines
fixed typos
........
r397 | bricks | 2010-08-02 17:36:12 +0200 (Mo, 02 Aug 2010) | 3 lines
be more error prone in listing different files
not checking if a dir exists caused several errors if a build wasn't successful
........
r398 | bricks | 2010-08-05 18:21:47 +0200 (Do, 05 Aug 2010) | 2 lines
review changes
........
r399 | bricks | 2010-08-06 13:06:08 +0200 (Fr, 06 Aug 2010) | 4 lines
cleanup modules
fix test_info testcases
added testcases for remove_trailingslashes and expand_filename
........
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 06 Aug 2010 13:41:54 +0000 |
parents | 8e0c81870e5e |
children | 454967511f5c |
line wrap: on
line source
# Copyright (C) 2007, 2008 by Intevation GmbH # Authors: # Bernhard Herzog <bh@intevation.de> # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. """Tests for the treepkg.util module""" import os import unittest from filesupport import FileTestMixin from treepkg.util import replace_in_file, listdir_abs, md5sum, \ remove_trailing_slashes, expand_filename class TestReplaceInFile(unittest.TestCase, FileTestMixin): def runtest(self, orig_contents, expected_contents, pattern, replacement): filename = self.create_temp_file("orig", orig_contents) changed = replace_in_file(filename, pattern, replacement) self.assertEquals(changed, orig_contents != expected_contents) self.check_file_contents(filename, expected_contents) def test_version_replacement(self): template = ("project foo version 1.0-svn%(rev)d" "Some filler" "text that sometimes" "looks similar to the pattern" "1.0-" "foo 1.2-svn2" "echo foo version 1.0-svn%(rev)d" "" "and more filler") self.runtest(template % dict(rev=0), template % dict(rev=321), r"1\.0-svn0", "1.0-svn321") def test_no_matches(self): """Tests replace_in_file when no matches are found""" template = ("project foo version 1.0-svn%(rev)d" "Some filler" "text that sometimes" "looks similar to the pattern" "1.0-" "foo 1.2-svn2" "echo foo version 1.0-svn%(rev)d" "" "and more filler") self.runtest(template % dict(rev=0), template % dict(rev=0), r"0\.9-svn0", "1.0-svn321") class TestListDirAbs(unittest.TestCase, FileTestMixin): def setUp(self): self.directory = self.create_temp_dir("a_directory") def test_listdir_abs(self): directory = self.create_files("dir", [("foo.orig.tgz", ""), ("foo.dsc", ""), ("foo.diff.gz", ""),]) self.assertEquals(sorted(listdir_abs(directory)), sorted([os.path.join(directory, d) for d in ["foo.orig.tgz", "foo.dsc", "foo.diff.gz"]])) def test_listdir_abs_pattern(self): directory = self.create_files("dir", [("foo.orig.tgz", ""), ("foo.dsc", ""), ("foo.diff.gz", ""),]) self.assertEquals(sorted(listdir_abs(directory, '*.dsc')), [os.path.join(directory, "foo.dsc")]) class TestMd5sum(unittest.TestCase, FileTestMixin): content = "this is a test content" def setUp(self): self.testfile = self.create_temp_file("testmd5.txt", self.content) def test_md5sum(self): sum = md5sum(self.testfile) self.assertEquals("a12511153555c1f0f0a1eda200733a3f", sum) class TestRemoveTrailingSlashes(unittest.TestCase): def test_remove_trailing_slashes(self): dir_w_slash = "/tmp/dir/" dir_wo_slash = "/tmp/dir" self.assertEquals(dir_wo_slash, remove_trailing_slashes(dir_w_slash)) self.assertEquals(dir_wo_slash, remove_trailing_slashes(dir_wo_slash)) class TestExpandFilename(unittest.TestCase): def test_expand_filenam(self): os.environ['MY_TEST_VAR'] = "def" path = "/abc/${MY_TEST_VAR}/" self.assertEquals("/abc/def/", expand_filename(path))