[Python-checkins] r46507 - in python/trunk/Lib: base64.py doctest.py optparse.py test/test_csv.py test/test_itertools.py test/test_optparse.py test/test_urllib2.py test/test_weakref.py
armin.rigo
python-checkins at python.org
Sun May 28 21:13:18 CEST 2006
Author: armin.rigo
Date: Sun May 28 21:13:17 2006
New Revision: 46507
Modified:
python/trunk/Lib/base64.py
python/trunk/Lib/doctest.py
python/trunk/Lib/optparse.py
python/trunk/Lib/test/test_csv.py
python/trunk/Lib/test/test_itertools.py
python/trunk/Lib/test/test_optparse.py
python/trunk/Lib/test/test_urllib2.py
python/trunk/Lib/test/test_weakref.py
Log:
("Forward-port" of r46506)
Remove various dependencies on dictionary order in the standard library
tests, and one (clearly an oversight, potentially critical) in the
standard library itself - base64.py.
Remaining open issues:
* test_extcall is an output test, messy to make robust
* tarfile.py has a potential bug here, but I'm not familiar
enough with this code. Filed in as SF bug #1496501.
* urllib2.HTTPPasswordMgr() returns a random result if there is more
than one matching root path. I'm asking python-dev for
clarification...
Modified: python/trunk/Lib/base64.py
==============================================================================
--- python/trunk/Lib/base64.py (original)
+++ python/trunk/Lib/base64.py Sun May 28 21:13:17 2006
@@ -126,7 +126,9 @@
8: 'I', 17: 'R', 26: '2',
}
-_b32tab = [v for v in _b32alphabet.values()]
+_b32tab = _b32alphabet.items()
+_b32tab.sort()
+_b32tab = [v for k, v in _b32tab]
_b32rev = dict([(v, long(k)) for k, v in _b32alphabet.items()])
Modified: python/trunk/Lib/doctest.py
==============================================================================
--- python/trunk/Lib/doctest.py (original)
+++ python/trunk/Lib/doctest.py Sun May 28 21:13:17 2006
@@ -1056,12 +1056,13 @@
>>> tests = DocTestFinder().find(_TestClass)
>>> runner = DocTestRunner(verbose=False)
+ >>> tests.sort(key = lambda test: test.name)
>>> for test in tests:
- ... print runner.run(test)
- (0, 2)
- (0, 1)
- (0, 2)
- (0, 2)
+ ... print test.name, '->', runner.run(test)
+ _TestClass -> (0, 2)
+ _TestClass.__init__ -> (0, 2)
+ _TestClass.get -> (0, 2)
+ _TestClass.square -> (0, 1)
The `summarize` method prints a summary of all the test cases that
have been run by the runner, and returns an aggregated `(f, t)`
Modified: python/trunk/Lib/optparse.py
==============================================================================
--- python/trunk/Lib/optparse.py (original)
+++ python/trunk/Lib/optparse.py Sun May 28 21:13:17 2006
@@ -611,8 +611,10 @@
else:
setattr(self, attr, None)
if attrs:
+ attrs = attrs.keys()
+ attrs.sort()
raise OptionError(
- "invalid keyword arguments: %s" % ", ".join(attrs.keys()),
+ "invalid keyword arguments: %s" % ", ".join(attrs),
self)
@@ -1661,6 +1663,7 @@
raise BadOptionError(s)
else:
# More than one possible completion: ambiguous prefix.
+ possibilities.sort()
raise AmbiguousOptionError(s, possibilities)
Modified: python/trunk/Lib/test/test_csv.py
==============================================================================
--- python/trunk/Lib/test/test_csv.py (original)
+++ python/trunk/Lib/test/test_csv.py Sun May 28 21:13:17 2006
@@ -875,7 +875,10 @@
def test_delimiters(self):
sniffer = csv.Sniffer()
dialect = sniffer.sniff(self.sample3)
- self.assertEqual(dialect.delimiter, "0")
+ # given that all three lines in sample3 are equal,
+ # I think that any character could have been 'guessed' as the
+ # delimiter, depending on dictionary order
+ self.assert_(dialect.delimiter in self.sample3)
dialect = sniffer.sniff(self.sample3, delimiters="?,")
self.assertEqual(dialect.delimiter, "?")
dialect = sniffer.sniff(self.sample3, delimiters="/,")
Modified: python/trunk/Lib/test/test_itertools.py
==============================================================================
--- python/trunk/Lib/test/test_itertools.py (original)
+++ python/trunk/Lib/test/test_itertools.py Sun May 28 21:13:17 2006
@@ -766,7 +766,7 @@
>>> from operator import itemgetter
>>> d = dict(a=1, b=2, c=1, d=2, e=1, f=2, g=3)
->>> di = sorted(d.iteritems(), key=itemgetter(1))
+>>> di = sorted(sorted(d.iteritems()), key=itemgetter(1))
>>> for k, g in groupby(di, itemgetter(1)):
... print k, map(itemgetter(0), g)
...
Modified: python/trunk/Lib/test/test_optparse.py
==============================================================================
--- python/trunk/Lib/test/test_optparse.py (original)
+++ python/trunk/Lib/test/test_optparse.py Sun May 28 21:13:17 2006
@@ -230,7 +230,7 @@
def test_attr_invalid(self):
self.assertOptionError(
- "option -b: invalid keyword arguments: foo, bar",
+ "option -b: invalid keyword arguments: bar, foo",
["-b"], {'foo': None, 'bar': None})
def test_action_invalid(self):
@@ -718,9 +718,8 @@
def test_ambiguous_option(self):
self.parser.add_option("--foz", action="store",
type="string", dest="foo")
- possibilities = ", ".join({"--foz": None, "--foo": None}.keys())
self.assertParseFail(["--f=bar"],
- "ambiguous option: --f (%s?)" % possibilities)
+ "ambiguous option: --f (--foo, --foz?)")
def test_short_and_long_option_split(self):
@@ -1537,10 +1536,9 @@
def test_match_abbrev_error(self):
s = "--f"
wordmap = {"--foz": None, "--foo": None, "--fie": None}
- possibilities = ", ".join(wordmap.keys())
self.assertRaises(
_match_abbrev, (s, wordmap), None,
- BadOptionError, "ambiguous option: --f (%s?)" % possibilities)
+ BadOptionError, "ambiguous option: --f (--fie, --foo, --foz?)")
class TestParseNumber(BaseTest):
Modified: python/trunk/Lib/test/test_urllib2.py
==============================================================================
--- python/trunk/Lib/test/test_urllib2.py (original)
+++ python/trunk/Lib/test/test_urllib2.py Sun May 28 21:13:17 2006
@@ -560,6 +560,7 @@
self.method = method
self.selector = url
self.req_headers += headers.items()
+ self.req_headers.sort()
if body:
self.data = body
if self.raise_on_endheaders:
Modified: python/trunk/Lib/test/test_weakref.py
==============================================================================
--- python/trunk/Lib/test/test_weakref.py (original)
+++ python/trunk/Lib/test/test_weakref.py Sun May 28 21:13:17 2006
@@ -1053,8 +1053,8 @@
...
>>> obj = Dict(red=1, green=2, blue=3) # this object is weak referencable
>>> r = weakref.ref(obj)
->>> print r()
-{'blue': 3, 'green': 2, 'red': 1}
+>>> print r() is obj
+True
>>> import weakref
>>> class Object:
More information about the Python-checkins
mailing list