Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(448)

Side by Side Diff: third_party/twisted_8_1/twisted/python/test/test_versions.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2006-2008 Twisted Matrix Laboratories.
2 # See LICENSE for details.
3
4 import sys
5 from cStringIO import StringIO
6
7 from twisted.python.versions import getVersionString, IncomparableVersions
8 from twisted.python.versions import Version, _inf
9 from twisted.python.filepath import FilePath
10
11 from twisted.trial import unittest
12
13
14
15 VERSION_4_ENTRIES = """\
16 <?xml version="1.0" encoding="utf-8"?>
17 <wc-entries
18 xmlns="svn:">
19 <entry
20 committed-rev="18210"
21 name=""
22 committed-date="2006-09-21T04:43:09.542953Z"
23 url="svn+ssh://svn.twistedmatrix.com/svn/Twisted/trunk/twisted"
24 last-author="exarkun"
25 kind="dir"
26 uuid="bbbe8e31-12d6-0310-92fd-ac37d47ddeeb"
27 repos="svn+ssh://svn.twistedmatrix.com/svn/Twisted"
28 revision="18211"/>
29 </wc-entries>
30 """
31
32
33
34 VERSION_8_ENTRIES = """\
35 8
36
37 dir
38 22715
39 svn+ssh://svn.twistedmatrix.com/svn/Twisted/trunk
40 """
41
42
43
44 class VersionsTest(unittest.TestCase):
45
46 def test_versionComparison(self):
47 """
48 Versions can be compared for equality and order.
49 """
50 va = Version("dummy", 1, 0, 0)
51 vb = Version("dummy", 0, 1, 0)
52 self.failUnless(va > vb)
53 self.failUnless(vb < va)
54 self.failUnless(va >= vb)
55 self.failUnless(vb <= va)
56 self.failUnless(va != vb)
57 self.failUnless(vb == Version("dummy", 0, 1, 0))
58 self.failUnless(vb == vb)
59
60 # BREAK IT DOWN@!!
61 self.failIf(va < vb)
62 self.failIf(vb > va)
63 self.failIf(va <= vb)
64 self.failIf(vb >= va)
65 self.failIf(va == vb)
66 self.failIf(vb != Version("dummy", 0, 1, 0))
67 self.failIf(vb != vb)
68
69
70 def test_comparingPrereleasesWithReleases(self):
71 """
72 Prereleases are always less than versions without prereleases.
73 """
74 va = Version("whatever", 1, 0, 0, prerelease=1)
75 vb = Version("whatever", 1, 0, 0)
76 self.assertTrue(va < vb)
77 self.assertFalse(va > vb)
78 self.assertNotEquals(vb, va)
79
80
81 def test_comparingPrereleases(self):
82 """
83 The value specified as the prerelease is used in version comparisons.
84 """
85 va = Version("whatever", 1, 0, 0, prerelease=1)
86 vb = Version("whatever", 1, 0, 0, prerelease=2)
87 self.assertTrue(va < vb)
88 self.assertFalse(va > vb)
89 self.assertNotEqual(va, vb)
90
91
92 def test_infComparison(self):
93 """
94 L{_inf} is equal to L{_inf}.
95
96 This is a regression test.
97 """
98 self.assertEquals(_inf, _inf)
99
100
101 def testDontAllowBuggyComparisons(self):
102 self.assertRaises(IncomparableVersions,
103 cmp,
104 Version("dummy", 1, 0, 0),
105 Version("dumym", 1, 0, 0))
106
107
108 def test_repr(self):
109 """
110 Calling C{repr} on a version returns a human-readable string
111 representation of the version.
112 """
113 self.assertEquals(repr(Version("dummy", 1, 2, 3)),
114 "Version('dummy', 1, 2, 3)")
115
116
117 def test_reprWithPrerelease(self):
118 """
119 Calling C{repr} on a version with a prerelease returns a human-readable
120 string representation of the version including the prerelease.
121 """
122 self.assertEquals(repr(Version("dummy", 1, 2, 3, prerelease=4)),
123 "Version('dummy', 1, 2, 3, prerelease=4)")
124
125
126 def test_str(self):
127 """
128 Calling C{str} on a version returns a human-readable string
129 representation of the version.
130 """
131 self.assertEquals(str(Version("dummy", 1, 2, 3)),
132 "[dummy, version 1.2.3]")
133
134
135 def test_strWithPrerelease(self):
136 """
137 Calling C{str} on a version with a prerelease includes the prerelease.
138 """
139 self.assertEquals(str(Version("dummy", 1, 0, 0, prerelease=1)),
140 "[dummy, version 1.0.0pre1]")
141
142
143 def testShort(self):
144 self.assertEquals(Version('dummy', 1, 2, 3).short(), '1.2.3')
145
146
147 def test_goodSVNEntries_4(self):
148 """
149 Version should be able to parse an SVN format 4 entries file.
150 """
151 version = Version("dummy", 1, 0, 0)
152 self.assertEquals(
153 version._parseSVNEntries_4(StringIO(VERSION_4_ENTRIES)), '18211')
154
155
156 def test_goodSVNEntries_8(self):
157 """
158 Version should be able to parse an SVN format 8 entries file.
159 """
160 version = Version("dummy", 1, 0, 0)
161 self.assertEqual(
162 version._parseSVNEntries_8(StringIO(VERSION_8_ENTRIES)), '22715')
163
164
165 def test_getVersionString(self):
166 """
167 L{getVersionString} returns a string with the package name and the
168 short version number.
169 """
170 self.assertEqual(
171 'Twisted 8.0.0', getVersionString(Version('Twisted', 8, 0, 0)))
172
173
174 def test_getVersionStringWithPrerelease(self):
175 """
176 L{getVersionString} includes the prerelease, if any.
177 """
178 self.assertEqual(
179 getVersionString(Version("whatever", 8, 0, 0, prerelease=1)),
180 "whatever 8.0.0pre1")
181
182
183 def test_base(self):
184 """
185 The L{base} method returns a very simple representation of the version.
186 """
187 self.assertEquals(Version("foo", 1, 0, 0).base(), "1.0.0")
188
189
190 def test_baseWithPrerelease(self):
191 """
192 The base version includes 'preX' for versions with prereleases.
193 """
194 self.assertEquals(Version("foo", 1, 0, 0, prerelease=8).base(),
195 "1.0.0pre8")
196
197
198
199 class FormatDiscoveryTests(unittest.TestCase):
200 """
201 Tests which discover the parsing method based on the imported module name.
202 """
203
204 def setUp(self):
205 """
206 Create a temporary directory with a package structure in it.
207 """
208 self.entry = FilePath(self.mktemp())
209 self.preTestModules = sys.modules.copy()
210 sys.path.append(self.entry.path)
211 pkg = self.entry.child("twisted_python_versions_package")
212 pkg.makedirs()
213 pkg.child("__init__.py").setContent(
214 "from twisted.python.versions import Version\n"
215 "version = Version('twisted_python_versions_package', 1, 0, 0)\n")
216 self.svnEntries = pkg.child(".svn")
217 self.svnEntries.makedirs()
218
219
220 def tearDown(self):
221 """
222 Remove the imported modules and sys.path modifications.
223 """
224 sys.modules.clear()
225 sys.modules.update(self.preTestModules)
226 sys.path.remove(self.entry.path)
227
228
229 def checkSVNFormat(self, formatVersion, entriesText, expectedRevision):
230 """
231 Check for the given revision being detected after setting the SVN
232 entries text and format version of the test directory structure.
233 """
234 self.svnEntries.child("format").setContent(formatVersion+"\n")
235 self.svnEntries.child("entries").setContent(entriesText)
236 self.assertEqual(self.getVersion()._getSVNVersion(), expectedRevision)
237
238
239 def getVersion(self):
240 """
241 Import and retrieve the Version object from our dynamically created
242 package.
243 """
244 import twisted_python_versions_package
245 return twisted_python_versions_package.version
246
247
248 def test_detectVersion4(self):
249 """
250 Verify that version 4 format file will be properly detected and parsed.
251 """
252 self.checkSVNFormat("4", VERSION_4_ENTRIES, '18211')
253
254
255 def test_detectVersion8(self):
256 """
257 Verify that version 8 format files will be properly detected and
258 parsed.
259 """
260 self.checkSVNFormat("8", VERSION_8_ENTRIES, '22715')
261
262
263 def test_detectUnknownVersion(self):
264 """
265 Verify that a new version of SVN will result in the revision 'Unknown'.
266 """
267 self.checkSVNFormat("some-random-new-version", "ooga booga!", 'Unknown')
268
269
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698