mirror of
https://github.com/servo/servo.git
synced 2025-08-15 02:15:33 +01:00
Update web-platform-tests to revision d011702f368b88b3bae86e7a8fd2ddd22e18b33c
This commit is contained in:
parent
f9608022ca
commit
299ad0f9d0
573 changed files with 38776 additions and 14942 deletions
|
@ -0,0 +1 @@
|
|||
#
|
|
@ -0,0 +1,179 @@
|
|||
import sys
|
||||
import types
|
||||
import py
|
||||
from py.builtin import set, frozenset, reversed, sorted
|
||||
|
||||
def test_enumerate():
|
||||
l = [0,1,2]
|
||||
for i,x in enumerate(l):
|
||||
assert i == x
|
||||
|
||||
def test_any():
|
||||
assert not py.builtin.any([0,False, None])
|
||||
assert py.builtin.any([0,False, None,1])
|
||||
|
||||
def test_all():
|
||||
assert not py.builtin.all([True, 1, False])
|
||||
assert py.builtin.all([True, 1, object])
|
||||
|
||||
def test_BaseException():
|
||||
assert issubclass(IndexError, py.builtin.BaseException)
|
||||
assert issubclass(Exception, py.builtin.BaseException)
|
||||
assert issubclass(KeyboardInterrupt, py.builtin.BaseException)
|
||||
|
||||
class MyRandomClass(object):
|
||||
pass
|
||||
assert not issubclass(MyRandomClass, py.builtin.BaseException)
|
||||
|
||||
assert py.builtin.BaseException.__module__ in ('exceptions', 'builtins')
|
||||
assert Exception.__name__ == 'Exception'
|
||||
|
||||
|
||||
def test_GeneratorExit():
|
||||
assert py.builtin.GeneratorExit.__module__ in ('exceptions', 'builtins')
|
||||
assert issubclass(py.builtin.GeneratorExit, py.builtin.BaseException)
|
||||
|
||||
def test_reversed():
|
||||
reversed = py.builtin.reversed
|
||||
r = reversed("hello")
|
||||
assert iter(r) is r
|
||||
s = "".join(list(r))
|
||||
assert s == "olleh"
|
||||
assert list(reversed(list(reversed("hello")))) == ['h','e','l','l','o']
|
||||
py.test.raises(TypeError, reversed, reversed("hello"))
|
||||
|
||||
def test_simple():
|
||||
s = set([1, 2, 3, 4])
|
||||
assert s == set([3, 4, 2, 1])
|
||||
s1 = s.union(set([5, 6]))
|
||||
assert 5 in s1
|
||||
assert 1 in s1
|
||||
|
||||
def test_frozenset():
|
||||
s = set([frozenset([0, 1]), frozenset([1, 0])])
|
||||
assert len(s) == 1
|
||||
|
||||
def test_sorted():
|
||||
if sorted == py.builtin.sorted:
|
||||
return # don't test a real builtin
|
||||
for s in [py.builtin.sorted]:
|
||||
def test():
|
||||
assert s([3, 2, 1]) == [1, 2, 3]
|
||||
assert s([1, 2, 3], reverse=True) == [3, 2, 1]
|
||||
l = s([1, 2, 3, 4, 5, 6], key=lambda x: x % 2)
|
||||
assert l == [2, 4, 6, 1, 3, 5]
|
||||
l = s([1, 2, 3, 4], cmp=lambda x, y: -cmp(x, y))
|
||||
assert l == [4, 3, 2, 1]
|
||||
l = s([1, 2, 3, 4], cmp=lambda x, y: -cmp(x, y),
|
||||
key=lambda x: x % 2)
|
||||
assert l == [1, 3, 2, 4]
|
||||
|
||||
def compare(x, y):
|
||||
assert type(x) == str
|
||||
assert type(y) == str
|
||||
return cmp(x, y)
|
||||
data = 'The quick Brown fox Jumped over The lazy Dog'.split()
|
||||
s(data, cmp=compare, key=str.lower)
|
||||
yield test
|
||||
|
||||
|
||||
def test_print_simple():
|
||||
from py.builtin import print_
|
||||
py.test.raises(TypeError, "print_(hello=3)")
|
||||
f = py.io.TextIO()
|
||||
print_("hello", "world", file=f)
|
||||
s = f.getvalue()
|
||||
assert s == "hello world\n"
|
||||
|
||||
f = py.io.TextIO()
|
||||
print_("hello", end="", file=f)
|
||||
s = f.getvalue()
|
||||
assert s == "hello"
|
||||
|
||||
f = py.io.TextIO()
|
||||
print_("xyz", "abc", sep="", end="", file=f)
|
||||
s = f.getvalue()
|
||||
assert s == "xyzabc"
|
||||
|
||||
class X:
|
||||
def __repr__(self): return "rep"
|
||||
f = py.io.TextIO()
|
||||
print_(X(), file=f)
|
||||
assert f.getvalue() == "rep\n"
|
||||
|
||||
def test_execfile(tmpdir):
|
||||
test_file = tmpdir.join("test.py")
|
||||
test_file.write("x = y\ndef f(): pass")
|
||||
ns = {"y" : 42}
|
||||
py.builtin.execfile(str(test_file), ns)
|
||||
assert ns["x"] == 42
|
||||
assert py.code.getrawcode(ns["f"]).co_filename == str(test_file)
|
||||
class A:
|
||||
y = 3
|
||||
x = 4
|
||||
py.builtin.execfile(str(test_file))
|
||||
assert A.x == 3
|
||||
|
||||
def test_getfuncdict():
|
||||
def f():
|
||||
pass
|
||||
f.x = 4
|
||||
assert py.builtin._getfuncdict(f)["x"] == 4
|
||||
assert py.builtin._getfuncdict(2) is None
|
||||
|
||||
def test_callable():
|
||||
class A: pass
|
||||
assert py.builtin.callable(test_callable)
|
||||
assert py.builtin.callable(A)
|
||||
assert py.builtin.callable(list)
|
||||
assert py.builtin.callable(id)
|
||||
assert not py.builtin.callable(4)
|
||||
assert not py.builtin.callable("hi")
|
||||
|
||||
def test_totext():
|
||||
py.builtin._totext("hello", "UTF-8")
|
||||
|
||||
def test_bytes_text():
|
||||
if sys.version_info[0] < 3:
|
||||
assert py.builtin.text == unicode
|
||||
assert py.builtin.bytes == str
|
||||
else:
|
||||
assert py.builtin.text == str
|
||||
assert py.builtin.bytes == bytes
|
||||
|
||||
def test_totext_badutf8():
|
||||
# this was in printouts within the pytest testsuite
|
||||
# totext would fail
|
||||
if sys.version_info >= (3,):
|
||||
errors = 'surrogateescape'
|
||||
else: # old python has crappy error handlers
|
||||
errors = 'replace'
|
||||
py.builtin._totext("\xa6", "UTF-8", errors)
|
||||
|
||||
def test_reraise():
|
||||
from py.builtin import _reraise
|
||||
try:
|
||||
raise Exception()
|
||||
except Exception:
|
||||
cls, val, tb = sys.exc_info()
|
||||
excinfo = py.test.raises(Exception, "_reraise(cls, val, tb)")
|
||||
|
||||
def test_exec():
|
||||
l = []
|
||||
py.builtin.exec_("l.append(1)")
|
||||
assert l == [1]
|
||||
d = {}
|
||||
py.builtin.exec_("x=4", d)
|
||||
assert d['x'] == 4
|
||||
|
||||
def test_tryimport():
|
||||
py.test.raises(ImportError, py.builtin._tryimport, 'xqwe123')
|
||||
x = py.builtin._tryimport('asldkajsdl', 'py')
|
||||
assert x == py
|
||||
x = py.builtin._tryimport('asldkajsdl', 'py.path')
|
||||
assert x == py.path
|
||||
|
||||
def test_getcode():
|
||||
code = py.builtin._getcode(test_getcode)
|
||||
assert isinstance(code, types.CodeType)
|
||||
assert py.builtin._getcode(4) is None
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
import py
|
||||
|
||||
import errno
|
||||
|
||||
def test_error_classes():
|
||||
for name in errno.errorcode.values():
|
||||
x = getattr(py.error, name)
|
||||
assert issubclass(x, py.error.Error)
|
||||
assert issubclass(x, EnvironmentError)
|
||||
|
||||
def test_picklability_issue1():
|
||||
e1 = py.error.ENOENT()
|
||||
s = py.std.pickle.dumps(e1)
|
||||
e2 = py.std.pickle.loads(s)
|
||||
assert isinstance(e2, py.error.ENOENT)
|
||||
|
||||
def test_unknown_error():
|
||||
num = 3999
|
||||
cls = py.error._geterrnoclass(num)
|
||||
assert cls.__name__ == 'UnknownErrno%d' % (num,)
|
||||
assert issubclass(cls, py.error.Error)
|
||||
assert issubclass(cls, EnvironmentError)
|
||||
cls2 = py.error._geterrnoclass(num)
|
||||
assert cls is cls2
|
||||
|
||||
def test_error_conversion_ENOTDIR(testdir):
|
||||
p = testdir.makepyfile("")
|
||||
excinfo = py.test.raises(py.error.Error, py.error.checked_call, p.listdir)
|
||||
assert isinstance(excinfo.value, EnvironmentError)
|
||||
assert isinstance(excinfo.value, py.error.Error)
|
||||
assert "ENOTDIR" in repr(excinfo.value)
|
||||
|
||||
|
||||
def test_checked_call_supports_kwargs(tmpdir):
|
||||
import tempfile
|
||||
py.error.checked_call(tempfile.mkdtemp, dir=str(tmpdir))
|
|
@ -0,0 +1,68 @@
|
|||
import py
|
||||
import types
|
||||
import sys
|
||||
|
||||
def checksubpackage(name):
|
||||
obj = getattr(py, name)
|
||||
if hasattr(obj, '__map__'): # isinstance(obj, Module):
|
||||
keys = dir(obj)
|
||||
assert len(keys) > 0
|
||||
print (obj.__map__)
|
||||
for name in list(obj.__map__):
|
||||
assert hasattr(obj, name), (obj, name)
|
||||
|
||||
def test_dir():
|
||||
for name in dir(py):
|
||||
if not name.startswith('_'):
|
||||
yield checksubpackage, name
|
||||
|
||||
def test_virtual_module_identity():
|
||||
from py import path as path1
|
||||
from py import path as path2
|
||||
assert path1 is path2
|
||||
from py.path import local as local1
|
||||
from py.path import local as local2
|
||||
assert local1 is local2
|
||||
|
||||
def test_importall():
|
||||
base = py._pydir
|
||||
nodirs = [
|
||||
]
|
||||
if sys.version_info >= (3,0):
|
||||
nodirs.append(base.join('_code', '_assertionold.py'))
|
||||
else:
|
||||
nodirs.append(base.join('_code', '_assertionnew.py'))
|
||||
|
||||
def recurse(p):
|
||||
return p.check(dotfile=0) and p.basename != "attic"
|
||||
|
||||
for p in base.visit('*.py', recurse):
|
||||
if p.basename == '__init__.py':
|
||||
continue
|
||||
relpath = p.new(ext='').relto(base)
|
||||
if base.sep in relpath: # not py/*.py itself
|
||||
for x in nodirs:
|
||||
if p == x or p.relto(x):
|
||||
break
|
||||
else:
|
||||
relpath = relpath.replace(base.sep, '.')
|
||||
modpath = 'py.%s' % relpath
|
||||
try:
|
||||
check_import(modpath)
|
||||
except py.test.skip.Exception:
|
||||
pass
|
||||
|
||||
def check_import(modpath):
|
||||
py.builtin.print_("checking import", modpath)
|
||||
assert __import__(modpath)
|
||||
|
||||
def test_all_resolves():
|
||||
seen = py.builtin.set([py])
|
||||
lastlength = None
|
||||
while len(seen) != lastlength:
|
||||
lastlength = len(seen)
|
||||
for item in py.builtin.frozenset(seen):
|
||||
for value in item.__dict__.values():
|
||||
if isinstance(value, type(py.test)):
|
||||
seen.add(value)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
import py
|
||||
|
||||
def test_os():
|
||||
import os
|
||||
assert py.std.os is os
|
||||
|
||||
def test_import_error_converts_to_attributeerror():
|
||||
py.test.raises(AttributeError, "py.std.xyzalskdj")
|
||||
|
||||
def test_std_gets_it():
|
||||
for x in py.std.sys.modules:
|
||||
assert x in py.std.__dict__
|
|
@ -0,0 +1,145 @@
|
|||
|
||||
import py
|
||||
from py._xmlgen import unicode, html, raw
|
||||
|
||||
class ns(py.xml.Namespace):
|
||||
pass
|
||||
|
||||
def test_escape():
|
||||
uvalue = py.builtin._totext('\xc4\x85\xc4\x87\n\xe2\x82\xac\n', 'utf-8')
|
||||
class A:
|
||||
def __unicode__(self):
|
||||
return uvalue
|
||||
def __str__(self):
|
||||
x = self.__unicode__()
|
||||
if py.std.sys.version_info[0] < 3:
|
||||
return x.encode('utf-8')
|
||||
return x
|
||||
y = py.xml.escape(uvalue)
|
||||
assert y == uvalue
|
||||
x = py.xml.escape(A())
|
||||
assert x == uvalue
|
||||
if py.std.sys.version_info[0] < 3:
|
||||
assert isinstance(x, unicode)
|
||||
assert isinstance(y, unicode)
|
||||
y = py.xml.escape(uvalue.encode('utf-8'))
|
||||
assert y == uvalue
|
||||
|
||||
|
||||
def test_tag_with_text():
|
||||
x = ns.hello("world")
|
||||
u = unicode(x)
|
||||
assert u == "<hello>world</hello>"
|
||||
|
||||
def test_class_identity():
|
||||
assert ns.hello is ns.hello
|
||||
|
||||
def test_tag_with_text_and_attributes():
|
||||
x = ns.some(name="hello", value="world")
|
||||
assert x.attr.name == 'hello'
|
||||
assert x.attr.value == 'world'
|
||||
u = unicode(x)
|
||||
assert u == '<some name="hello" value="world"/>'
|
||||
|
||||
def test_tag_with_subclassed_attr_simple():
|
||||
class my(ns.hello):
|
||||
class Attr(ns.hello.Attr):
|
||||
hello="world"
|
||||
x = my()
|
||||
assert x.attr.hello == 'world'
|
||||
assert unicode(x) == '<my hello="world"/>'
|
||||
|
||||
def test_tag_with_raw_attr():
|
||||
x = html.object(data=raw('&'))
|
||||
assert unicode(x) == '<object data="&"></object>'
|
||||
|
||||
def test_tag_nested():
|
||||
x = ns.hello(ns.world())
|
||||
unicode(x) # triggers parentifying
|
||||
assert x[0].parent is x
|
||||
u = unicode(x)
|
||||
assert u == '<hello><world/></hello>'
|
||||
|
||||
def test_list_nested():
|
||||
x = ns.hello([ns.world()]) #pass in a list here
|
||||
u = unicode(x)
|
||||
assert u == '<hello><world/></hello>'
|
||||
|
||||
def test_tag_xmlname():
|
||||
class my(ns.hello):
|
||||
xmlname = 'world'
|
||||
u = unicode(my())
|
||||
assert u == '<world/>'
|
||||
|
||||
def test_tag_with_text_entity():
|
||||
x = ns.hello('world & rest')
|
||||
u = unicode(x)
|
||||
assert u == "<hello>world & rest</hello>"
|
||||
|
||||
def test_tag_with_text_and_attributes_entity():
|
||||
x = ns.some(name="hello & world")
|
||||
assert x.attr.name == "hello & world"
|
||||
u = unicode(x)
|
||||
assert u == '<some name="hello & world"/>'
|
||||
|
||||
def test_raw():
|
||||
x = ns.some(py.xml.raw("<p>literal</p>"))
|
||||
u = unicode(x)
|
||||
assert u == "<some><p>literal</p></some>"
|
||||
|
||||
|
||||
def test_html_name_stickyness():
|
||||
class my(html.p):
|
||||
pass
|
||||
x = my("hello")
|
||||
assert unicode(x) == '<p>hello</p>'
|
||||
|
||||
def test_stylenames():
|
||||
class my:
|
||||
class body(html.body):
|
||||
style = html.Style(font_size = "12pt")
|
||||
u = unicode(my.body())
|
||||
assert u == '<body style="font-size: 12pt"></body>'
|
||||
|
||||
def test_class_None():
|
||||
t = html.body(class_=None)
|
||||
u = unicode(t)
|
||||
assert u == '<body></body>'
|
||||
|
||||
def test_alternating_style():
|
||||
alternating = (
|
||||
html.Style(background="white"),
|
||||
html.Style(background="grey"),
|
||||
)
|
||||
class my(html):
|
||||
class li(html.li):
|
||||
def style(self):
|
||||
i = self.parent.index(self)
|
||||
return alternating[i%2]
|
||||
style = property(style)
|
||||
|
||||
x = my.ul(
|
||||
my.li("hello"),
|
||||
my.li("world"),
|
||||
my.li("42"))
|
||||
u = unicode(x)
|
||||
assert u == ('<ul><li style="background: white">hello</li>'
|
||||
'<li style="background: grey">world</li>'
|
||||
'<li style="background: white">42</li>'
|
||||
'</ul>')
|
||||
|
||||
def test_singleton():
|
||||
h = html.head(html.link(href="foo"))
|
||||
assert unicode(h) == '<head><link href="foo"/></head>'
|
||||
|
||||
h = html.head(html.script(src="foo"))
|
||||
assert unicode(h) == '<head><script src="foo"></script></head>'
|
||||
|
||||
def test_inline():
|
||||
h = html.div(html.span('foo'), html.span('bar'))
|
||||
assert (h.unicode(indent=2) ==
|
||||
'<div><span>foo</span><span>bar</span></div>')
|
||||
|
||||
def test_object_tags():
|
||||
o = html.object(html.object())
|
||||
assert o.unicode(indent=0) == '<object><object></object></object>'
|
Loading…
Add table
Add a link
Reference in a new issue