[Checkins] SVN: zc.mirrorcheeseshopslashsimple/trunk/ better check for unicode/ascii package names
Andreas Jung
andreas at andreas-jung.com
Tue Aug 12 07:43:49 EDT 2008
Log message for revision 89712:
better check for unicode/ascii package names
Changed:
U zc.mirrorcheeseshopslashsimple/trunk/buildout.cfg
U zc.mirrorcheeseshopslashsimple/trunk/setup.py
U zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py
A zc.mirrorcheeseshopslashsimple/trunk/src/zc/tests.py
A zc.mirrorcheeseshopslashsimple/trunk/src/zc/util.py
-=-
Modified: zc.mirrorcheeseshopslashsimple/trunk/buildout.cfg
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/buildout.cfg 2008-08-12 11:43:32 UTC (rev 89711)
+++ zc.mirrorcheeseshopslashsimple/trunk/buildout.cfg 2008-08-12 11:43:48 UTC (rev 89712)
@@ -1,8 +1,13 @@
[buildout]
-parts = py
+parts = py test
develop = .
[py]
recipe = zc.recipe.egg
eggs = zc.mirrorcheeseshopslashsimple
interpreter = py
+
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = zc.mirrorcheeseshopslashsimple
Modified: zc.mirrorcheeseshopslashsimple/trunk/setup.py
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/setup.py 2008-08-12 11:43:32 UTC (rev 89711)
+++ zc.mirrorcheeseshopslashsimple/trunk/setup.py 2008-08-12 11:43:48 UTC (rev 89712)
@@ -2,7 +2,7 @@
setup(
name='zc.mirrorcheeseshopslashsimple',
- version='0.2',
+ version='0.3',
package_dir = {'': 'src'},
install_requires = ['zc.lockfile'],
entry_points = dict(console_scripts=[
Modified: zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py 2008-08-12 11:43:32 UTC (rev 89711)
+++ zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py 2008-08-12 11:43:48 UTC (rev 89712)
@@ -15,6 +15,7 @@
import ConfigParser
import os, sys, time, urllib, urllib2, xmlrpclib
import zc.lockfile
+import util
lock_file_path = 'pypi-poll-access.lock'
poll_time_path = 'pypi-poll-timestamp'
@@ -41,9 +42,8 @@
return tuple(config.sections())
def get_page(dest, package, force=False):
- try:
- package.decode('ascii')
- except UnicodeEncodeError:
+
+ if not util.isASCII(package):
print 'skipping %r which has a non-ascii name' % `package`
return
Added: zc.mirrorcheeseshopslashsimple/trunk/src/zc/tests.py
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/src/zc/tests.py (rev 0)
+++ zc.mirrorcheeseshopslashsimple/trunk/src/zc/tests.py 2008-08-12 11:43:48 UTC (rev 89712)
@@ -0,0 +1,27 @@
+# *-* coding: iso-8859-15 *-*
+
+"""
+Tests
+"""
+
+import unittest
+import util
+
+
+class UtilityTests(unittest.TestCase):
+
+ def testIsAscii(self):
+
+ self.assertEqual(util.isASCII('foo'), True)
+ self.assertEqual(util.isASCII(u'foo'), True)
+ self.assertEqual(util.isASCII('üöä'), False)
+ self.assertEqual(util.isASCII(u'üöä'), False)
+ self.assertRaises(TypeError, util.isASCII, 2)
+
+
+def test_suite():
+ from unittest import TestSuite, makeSuite
+ suite = TestSuite()
+ suite.addTest(makeSuite(UtilityTests))
+ return suite
+
Added: zc.mirrorcheeseshopslashsimple/trunk/src/zc/util.py
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/src/zc/util.py (rev 0)
+++ zc.mirrorcheeseshopslashsimple/trunk/src/zc/util.py 2008-08-12 11:43:48 UTC (rev 89712)
@@ -0,0 +1,22 @@
+
+
+def isASCII(s):
+ """ Checks if a string/unicode string contains only ASCII chars. """
+
+ if isinstance(s, unicode):
+ try:
+ s.encode('ascii')
+ return True
+ except UnicodeError:
+ return False
+
+ elif isinstance(s, str):
+ try:
+ unicode(s, 'ascii')
+ return True
+ except UnicodeError:
+ return False
+
+ else:
+ raise TypeError('isASCII() requires a string or unicode string')
+
More information about the Checkins
mailing list