Commit 86550b27 authored by YOU's avatar YOU Committed by Dylan Trotter

Add stdlib string tests (#181)

parent a09bb560
...@@ -80,6 +80,10 @@ STDLIB_TESTS := \ ...@@ -80,6 +80,10 @@ STDLIB_TESTS := \
tempfile_test \ tempfile_test \
test/seq_tests \ test/seq_tests \
test/test_tuple \ test/test_tuple \
test/mapping_tests \
test/test_dict \
test/string_tests \
test/test_string \
threading_test \ threading_test \
time_test \ time_test \
types_test \ types_test \
......
...@@ -82,7 +82,7 @@ def maketrans(fromstr, tostr): ...@@ -82,7 +82,7 @@ def maketrans(fromstr, tostr):
#################################################################### ####################################################################
#import re as _re import re as _re
class _multimap(object): class _multimap(object):
"""Helper class for combining multiple mappings. """Helper class for combining multiple mappings.
...@@ -101,36 +101,47 @@ class _multimap(object): ...@@ -101,36 +101,47 @@ class _multimap(object):
return self._secondary[key] return self._secondary[key]
# class _TemplateMetaclass(type): class _TemplateMetaclass(type):
# pattern = r""" # pattern = r"""
# %(delim)s(?: # %(delim)s(?:
# (?P<escaped>%(delim)s) | # Escape sequence of two delimiters # (?P<escaped>%(delim)s) | # Escape sequence of two delimiters
# (?P<named>%(id)s) | # delimiter and a Python identifier # (?P<named>%(id)s) | # delimiter and a Python identifier
# {(?P<braced>%(id)s)} | # delimiter and a braced identifier # {(?P<braced>%(id)s)} | # delimiter and a braced identifier
# (?P<invalid>) # Other ill-formed delimiter exprs # (?P<invalid>) # Other ill-formed delimiter exprs
# ) # )
# """ # """
pattern = r"""
# def __init__(cls, name, bases, dct): %s(?:
# super(_TemplateMetaclass, cls).__init__(name, bases, dct) (?P<escaped>%s) | # Escape sequence of two delimiters
# if 'pattern' in dct: (?P<named>%s) | # delimiter and a Python identifier
# pattern = cls.pattern {(?P<braced>%s)} | # delimiter and a braced identifier
# else: (?P<invalid>) # Other ill-formed delimiter exprs
# pattern = _TemplateMetaclass.pattern % { )
# 'delim' : _re.escape(cls.delimiter), """
# 'id' : cls.idpattern,
# } def __init__(cls, name, bases, dct):
# cls.pattern = _re.compile(pattern, _re.IGNORECASE | _re.VERBOSE) # super(_TemplateMetaclass, cls).__init__(name, bases, dct)
super(_TemplateMetaclass, cls)
if 'pattern' in dct:
pattern = cls.pattern
else:
# pattern = _TemplateMetaclass.pattern % {
# 'delim' : _re.escape(cls.delimiter),
# 'id' : cls.idpattern,
# }
cls_delim, cls_id = _re.escape(cls.delimiter), cls.idpattern
pattern = _TemplateMetaclass.pattern % (cls_delim, cls_delim, cls_id, cls_id)
cls.pattern = _re.compile(pattern, _re.IGNORECASE | _re.VERBOSE)
class Template(object): class Template(object):
"""A string class for supporting $-substitutions.""" """A string class for supporting $-substitutions."""
# __metaclass__ = _TemplateMetaclass __metaclass__ = _TemplateMetaclass
delimiter = '$' delimiter = '$'
idpattern = r'[_a-z][_a-z0-9]*' idpattern = r'[_a-z][_a-z0-9]*'
def __init__(self, template): def __init__(self, template, *arg):
self.template = template self.template = template
# Search for $$, $identifier, ${identifier}, and any bare $'s # Search for $$, $identifier, ${identifier}, and any bare $'s
......
This diff is collapsed.
...@@ -42,7 +42,6 @@ class DictTest(unittest.TestCase): ...@@ -42,7 +42,6 @@ class DictTest(unittest.TestCase):
self.assertTrue(d.has_key('b')) self.assertTrue(d.has_key('b'))
self.assertRaises(TypeError, d.keys, None) self.assertRaises(TypeError, d.keys, None)
@unittest.expectedFailure
def test_values(self): def test_values(self):
d = {} d = {}
self.assertEqual(d.values(), []) self.assertEqual(d.values(), [])
...@@ -727,8 +726,4 @@ def test_main(): ...@@ -727,8 +726,4 @@ def test_main():
) )
if __name__ == "__main__": if __name__ == "__main__":
import traceback test_main()
try:
test_main()
except:
traceback.print_exc()
This diff is collapsed.
...@@ -1273,7 +1273,7 @@ def check_py3k_warnings(*filters, **kwargs): ...@@ -1273,7 +1273,7 @@ def check_py3k_warnings(*filters, **kwargs):
# _2G = 2 * _1G # _2G = 2 * _1G
# _4G = 4 * _1G # _4G = 4 * _1G
# MAX_Py_ssize_t = sys.maxsize MAX_Py_ssize_t = sys.maxsize
# def set_memlimit(limit): # def set_memlimit(limit):
# global max_memuse # global max_memuse
......
...@@ -50,7 +50,7 @@ GeneratorType = type(_g()) ...@@ -50,7 +50,7 @@ GeneratorType = type(_g())
class _C(object): class _C(object):
def _m(self): pass def _m(self): pass
#ClassType = type(_C) ClassType = type(_C)
UnboundMethodType = type(_C._m) # Same as MethodType UnboundMethodType = type(_C._m) # Same as MethodType
_x = _C() _x = _C()
#InstanceType = type(_x) #InstanceType = type(_x)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment