1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
import pytest
try:
import mock
except ImportError:
import unittest.mock as mock
from dominate.tags import *
def test___get_thread_context(monkeypatch):
from dominate import dom_tag as sut
greenlet = mock.Mock()
greenlet.getcurrent.return_value = 100
monkeypatch.setattr(sut, 'greenlet', greenlet)
threading = mock.Mock()
threading.current_thread.return_value = 200
monkeypatch.setattr(sut, 'threading', threading)
assert sut._get_thread_context() is not None
def test_add_raw_string():
container = div()
container.add_raw_string('foo')
assert container.children == ['foo']
def test_clear():
container = div()
child = div()
container.add(child)
assert container.children == [child]
assert child.parent == container
container.clear()
assert container.children == []
assert child.parent is None
def test_set_attribute():
container = div()
container.add_raw_string('foo')
container.set_attribute(0, 'bar')
assert container.children == ['bar']
def test_set_attribute_error():
container = div()
with pytest.raises(TypeError, match=(
'Only integer and string types are valid for assigning '
'child tags and attributes, respectively.'
)):
container.set_attribute(1.0, 'foo')
def test___get_item___child_index_error():
d = div()
with pytest.raises(IndexError, match='Child with index "10" does not exist.'):
d[10]
def test___contains__():
container = div()
container.add(div())
assert 'div' in container
def test_nested_context():
def sub(*args):
with div('B') as B:
B.add(*args)
with div('A') as A:
sub(div('C'))
assert str(A) == \
'''<div>A
<div>B
<div>C</div>
</div>
</div>'''
|