1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
import os
import unittest
import warnings
from tempfile import NamedTemporaryFile
from test import test_support
from gentoolkit import helpers
class TestChangeLog(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_split_changelog(self):
changelog = """
*portage-2.1.6.2 (20 Dec 2008)
20 Dec 2008; Zac Medico <zmedico@gentoo.org> +portage-2.1.6.2.ebuild:
2.1.6.2 bump. This fixes bug #251591 (repoman inherit.autotools false
positives) and bug #251616 (performance issue in build log search regex
makes emerge appear to hang). Bug #216231 tracks all bugs fixed since
2.1.4.x.
20 Dec 2008; Zac Medico <zmedico@gentoo.org> -portage-2.1.6.ebuild,
-portage-2.1.6.1.ebuild, -portage-2.2_rc17.ebuild:
Remove old versions.
*portage-2.1.6.1 (12 Dec 2008)
12 Dec 2008; Zac Medico <zmedico@gentoo.org> +portage-2.1.6.1.ebuild:
2.1.6.1 bump. This fixes bug #250148 (emerge hangs with selinux if ebuild
spawns a daemon), bug #250166 (trigger download when generating manifest
if file size differs from existing entry), and bug #250212 (new repoman
upstream.workaround category for emake -j1 warnings). Bug #216231 tracks
all bugs fixed since 2.1.4.x.
*portage-2.1.6 (07 Dec 2008)
07 Dec 2008; Zac Medico <zmedico@gentoo.org> +portage-2.1.6.ebuild:
2.1.6 final release. This fixes bug #249586. Bug #216231 tracks all bugs
fixed since 2.1.4.x.
07 Dec 2008; Zac Medico <zmedico@gentoo.org> -portage-2.1.6_rc1.ebuild,
-portage-2.1.6_rc2.ebuild, -portage-2.1.6_rc3.ebuild,
-portage-2.2_rc16.ebuild:
Remove old versions.
"""
class TestFileOwner(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_extend_realpaths(self):
extend_realpaths = helpers.FileOwner.extend_realpaths
# Test that symlinks's realpaths are extended
f1 = NamedTemporaryFile(prefix='equeryunittest')
f2 = NamedTemporaryFile(prefix='equeryunittest')
f3 = NamedTemporaryFile(prefix='equeryunittest')
with warnings.catch_warnings():
warnings.simplefilter("ignore")
sym1 = os.tmpnam()
os.symlink(f1.name, sym1)
sym2 = os.tmpnam()
os.symlink(f3.name, sym2)
# We've created 3 files and 2 symlinks for testing. We're going to pass
# in only the first two files and both symlinks. sym1 points to f1.
# Since f1 is already in the list, sym1's realpath should not be added.
# sym2 points to f3, but f3's not in our list, so sym2's realpath
# should be added to the list.
p = [f1.name, f2.name, sym1, sym2]
p_xr = extend_realpaths(p)
self.failUnlessEqual(p_xr[0], f1.name)
self.failUnlessEqual(p_xr[1], f2.name)
self.failUnlessEqual(p_xr[2], sym1)
self.failUnlessEqual(p_xr[3], sym2)
self.failUnlessEqual(p_xr[4], f3.name)
# Clean up
os.unlink(sym1)
os.unlink(sym2)
# Make sure we raise an exception if we don't get acceptable input
self.failUnlessRaises(AttributeError, extend_realpaths, 'str')
self.failUnlessRaises(AttributeError, extend_realpaths, set())
class TestGentoolkitHelpers(unittest.TestCase):
def test_compare_package_strings(self):
# Test ordering of package strings, Portage has test for vercmp,
# so just do the rest
version_tests = [
# different categories
('sys-apps/portage-2.1.6.8', 'sys-auth/pambase-20080318'),
# different package names
('sys-apps/pkgcore-0.4.7.15-r1', 'sys-apps/portage-2.1.6.8'),
# different package versions
('sys-apps/portage-2.1.6.8', 'sys-apps/portage-2.2_rc25')
]
# Check less than
for vt in version_tests:
self.failUnless(
helpers.compare_package_strings(vt[0], vt[1]) == -1
)
# Check greater than
for vt in version_tests:
self.failUnless(
helpers.compare_package_strings(vt[1], vt[0]) == 1
)
# Check equal
vt = ('sys-auth/pambase-20080318', 'sys-auth/pambase-20080318')
self.failUnless(
helpers.compare_package_strings(vt[0], vt[1]) == 0
)
def test_uses_globbing(self):
globbing_tests = [
('sys-apps/portage-2.1.6.13', False),
('>=sys-apps/portage-2.1.6.13', False),
('<=sys-apps/portage-2.1.6.13', False),
('~sys-apps/portage-2.1.6.13', False),
('=sys-apps/portage-2*', False),
('sys-*/*-2.1.6.13', True),
('sys-app?/portage-2.1.6.13', True),
('sys-apps/[bp]ortage-2.1.6.13', True),
('sys-apps/[!p]ortage*', True)
]
for gt in globbing_tests:
self.failUnless(
helpers.uses_globbing(gt[0]) == gt[1]
)
def test_main():
test_support.run_unittest(TestGentoolkitHelpers2)
if __name__ == '__main__':
test_main()
|