annotate test/test_util.py @ 170:bfcb2bbf9a52

Move the pbuilder initialization code from bin/initpbuilder.py to treepkg/builder.py to make it work again and add some tests.
author Bernhard Herzog <bh@intevation.de>
date Mon, 23 Jun 2008 13:21:08 +0000
parents 261b75d7b972
children e1c7cd896310
rev   line source
111
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
1 # Copyright (C) 2007, 2008 by Intevation GmbH
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 # Authors:
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 # Bernhard Herzog <bh@intevation.de>
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 #
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 # This program is free software under the GPL (>=v2)
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 # Read the file COPYING coming with the software for details.
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8 """Tests for the treepkg.util module"""
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9
169
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
10 import os
111
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import unittest
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 from filesupport import FileTestMixin
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14
169
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
15 from treepkg.util import replace_in_file, listdir_abs
111
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18 class TestReplaceInFile(unittest.TestCase, FileTestMixin):
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20 def runtest(self, orig_contents, expected_contents, pattern, replacement):
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21 filename = self.create_temp_file(self.id(), orig_contents)
160
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
22 changed = replace_in_file(filename, pattern, replacement)
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
23 self.assertEquals(changed, orig_contents != expected_contents)
111
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24 self.checkFileContents(filename, expected_contents)
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 def test_version_replacement(self):
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27 template = ("project foo version 1.0-svn%(rev)d"
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 "Some filler"
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 "text that sometimes"
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 "looks similar to the pattern"
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 "1.0-"
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32 "foo 1.2-svn2"
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 "echo foo version 1.0-svn%(rev)d"
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 ""
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 "and more filler")
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 self.runtest(template % dict(rev=0), template % dict(rev=321),
7f6fb8103db0 Move the sed-like replacement code from enterprise/kdepim.py to treepkg/util.py
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 r"1\.0-svn0", "1.0-svn321")
160
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
38
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
39 def test_no_matches(self):
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
40 """Tests replace_in_file when no matches are found"""
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
41 template = ("project foo version 1.0-svn%(rev)d"
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
42 "Some filler"
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
43 "text that sometimes"
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
44 "looks similar to the pattern"
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
45 "1.0-"
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
46 "foo 1.2-svn2"
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
47 "echo foo version 1.0-svn%(rev)d"
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
48 ""
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
49 "and more filler")
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
50 self.runtest(template % dict(rev=0), template % dict(rev=0),
017179427c7f Make treepkg/utilreplace_in_file return whether any substitutions were made.
Bernhard Herzog <bh@intevation.de>
parents: 111
diff changeset
51 r"0\.9-svn0", "1.0-svn321")
169
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
52
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
53
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
54 class TestListDirAbs(unittest.TestCase, FileTestMixin):
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
55
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
56 def setUp(self):
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
57 self.directory = self.create_temp_dir(self.id())
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
58
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
59 def test_listdir_abs(self):
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
60 self.create_files(self.directory, [("foo.orig.tgz", ""),
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
61 ("foo.dsc", ""),
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
62 ("foo.diff.gz", ""),])
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
63 self.assertEquals(sorted(listdir_abs(self.directory)),
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
64 sorted([os.path.join(self.directory, d)
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
65 for d in ["foo.orig.tgz", "foo.dsc",
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
66 "foo.diff.gz"]]))
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
67
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
68 def test_listdir_abs_pattern(self):
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
69 self.create_files(self.directory, [("foo.orig.tgz", ""),
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
70 ("foo.dsc", ""),
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
71 ("foo.diff.gz", ""),])
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
72 self.assertEquals(sorted(listdir_abs(self.directory, '*.dsc')),
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
73 [os.path.join(self.directory, "foo.dsc")])
261b75d7b972 Extend listdir_abs with an optional glob pattern
Bernhard Herzog <bh@intevation.de>
parents: 162
diff changeset
74
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)