Begin incorporating Python unit tests into build

We now build a separate APE binary for each test so they can run in
parallel. We've got 148 tests running fast and stable so far.
This commit is contained in:
Justine Tunney 2021-09-12 21:04:44 -07:00
parent 51904e2687
commit b5f743cdc3
121 changed files with 4995 additions and 4767 deletions

View file

@ -15,21 +15,13 @@ list, set, and tuple.
'''
__all__ = ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList',
'UserString', 'Counter', 'OrderedDict', 'ChainMap',
'Awaitable', 'Coroutine',
'AsyncIterable', 'AsyncIterator', 'AsyncGenerator',
'Hashable', 'Iterable', 'Iterator', 'Generator', 'Reversible',
'Sized', 'Container', 'Callable', 'Collection',
'Set', 'MutableSet',
'Mapping', 'MutableMapping',
'MappingView', 'KeysView', 'ItemsView', 'ValuesView',
'Sequence', 'MutableSequence',
'ByteString']
'UserString', 'Counter', 'OrderedDict', 'ChainMap']
# For backwards compatibility, continue to make the collections ABCs
# available through the collections module.
from _collections_abc import ABCMeta, AsyncGenerator, AsyncIterable, AsyncIterator, Awaitable, ByteString, Callable, Collection, Container, Coroutine, Generator, Hashable, ItemsView, Iterable, Iterator, KeysView, Mapping, MappingView, MutableMapping, MutableSequence, MutableSet, Reversible, Sequence, Set, Sized, ValuesView, _check_methods, abstractmethod, async_generator, bytearray_iterator, bytes_iterator, coroutine, dict_itemiterator, dict_items, dict_keyiterator, dict_keys, dict_valueiterator, dict_values, generator, list_iterator, list_reverseiterator, longrange_iterator, mappingproxy, range_iterator, set_iterator, str_iterator, sys, tuple_iterator, zip_iterator
from _collections_abc import *
import _collections_abc
__all__ += _collections_abc.__all__
from operator import itemgetter as _itemgetter, eq as _eq
from keyword import iskeyword as _iskeyword
@ -39,11 +31,17 @@ from _weakref import proxy as _proxy
from itertools import repeat as _repeat, chain as _chain, starmap as _starmap
from reprlib import recursive_repr as _recursive_repr
from _collections import deque
MutableSequence.register(deque)
from _collections import defaultdict
try:
from _collections import deque
except ImportError:
pass
else:
MutableSequence.register(deque)
try:
from _collections import defaultdict
except ImportError:
pass
################################################################################
### OrderedDict
@ -1243,3 +1241,84 @@ class UserString(Sequence):
return self.__class__(self.data.translate(*args))
def upper(self): return self.__class__(self.data.upper())
def zfill(self, width): return self.__class__(self.data.zfill(width))
if __name__ == 'PYOBJ.COM':
import _collections
ABCMeta = 0
AsyncGenerator = 0
AsyncIterable = 0
AsyncIterator = 0
Awaitable = 0
ByteString = 0
Callable = 0
ChainMap = 0
Collection = 0
Container = 0
Coroutine = 0
Counter = 0
Generator = 0
Hashable = 0
ItemsView = 0
Iterable = 0
Iterator = 0
KeysView = 0
Mapping = 0
MappingView = 0
MutableMapping = 0
MutableSequence = 0
MutableSet = 0
OrderedDict = 0
Reversible = 0
Sequence = 0
Set = 0
Sized = 0
UserDict = 0
UserList = 0
UserString = 0
ValuesView = 0
_Link = 0
_OrderedDictItemsView = 0
_OrderedDictKeysView = 0
_OrderedDictValuesView = 0
_chain = 0
_check_methods = 0
_class_template = 0
_collections_abc = 0
_count_elements = 0
_eq = 0
_field_template = 0
_heapq = 0
_iskeyword = 0
_itemgetter = 0
_proxy = 0
_recursive_repr = 0
_repeat = 0
_repr_template = 0
_starmap = 0
_sys = 0
abstractmethod = 0
async_generator = 0
bytearray_iterator = 0
bytes_iterator = 0
coroutine = 0
defaultdict = 0
deque = 0
dict_itemiterator = 0
dict_items = 0
dict_keyiterator = 0
dict_keys = 0
dict_valueiterator = 0
dict_values = 0
generator = 0
list_iterator = 0
list_reverseiterator = 0
longrange_iterator = 0
mappingproxy = 0
namedtuple = 0
range_iterator = 0
set_iterator = 0
str_iterator = 0
sys = 0
tuple_iterator = 0
zip_iterator = 0

View file

@ -1,27 +1,29 @@
from _collections_abc import (
Awaitable,
Coroutine,
AsyncIterable,
AsyncIterator,
AsyncGenerator,
Hashable,
Iterable,
Iterator,
Generator,
Reversible,
Sized,
Container,
Callable,
Collection,
Set,
MutableSet,
Mapping,
MutableMapping,
MappingView,
KeysView,
ItemsView,
ValuesView,
Sequence,
MutableSequence,
ByteString,
)
from _collections_abc import *
from _collections_abc import __all__
if __name__ == 'PYOBJ.COM':
AsyncGenerator = 0
AsyncIterable = 0
AsyncIterator = 0
Awaitable = 0
ByteString = 0
Callable = 0
Collection = 0
Container = 0
Coroutine = 0
Generator = 0
Hashable = 0
ItemsView = 0
Iterable = 0
Iterator = 0
KeysView = 0
Mapping = 0
MappingView = 0
MutableMapping = 0
MutableSequence = 0
MutableSet = 0
Reversible = 0
Sequence = 0
Set = 0
Sized = 0
ValuesView = 0