From f63d63c23b84cd68e4f084f12dfffa769ae69b2d Mon Sep 17 00:00:00 2001 From: Tom Flanagan Date: Mon, 24 Mar 2014 22:31:38 -0700 Subject: [PATCH] test package install on travis-ci --- .travis.yml | 6 +- setup.py | 5 + tests/test_document.py | 152 ++++++------- tests/test_dom1core.py | 32 +-- tests/test_html.py | 472 ++++++++++++++++++++--------------------- tests/test_utils.py | 62 +++--- 6 files changed, 368 insertions(+), 361 deletions(-) diff --git a/.travis.yml b/.travis.yml index f49c814..7f5f794 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ python: - "2.7" - "3.3" # - "3.4" - # - "pypy" + - "pypy" # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors install: @@ -12,7 +12,9 @@ install: # command to run tests, e.g. python setup.py test script: - - PYTHONPATH=. py.test + - python setup.py sdist --format=zip + - pip install dist/dominate*.zip + - py.test after_success: - pip install coveralls coverage diff --git a/setup.py b/setup.py index 9505127..1925974 100644 --- a/setup.py +++ b/setup.py @@ -54,7 +54,12 @@ 'License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)', 'Operating System :: OS Independent', 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Text Processing :: Markup :: HTML', diff --git a/tests/test_document.py b/tests/test_document.py index dd7a69f..918454c 100644 --- a/tests/test_document.py +++ b/tests/test_document.py @@ -1,76 +1,76 @@ -from dominate import document -from dominate.tags import * - -def test_doc(): - d = document() - assert d.render() == \ -''' - - - Dominate - - -''' - - -def test_decorator(): - @document() - def foo(): - p('Hello World') - - f = foo() - assert f.render() == \ -''' - - - Dominate - - -

Hello World

- -''' - - -def test_bare_decorator(): - @document - def foo(): - p('Hello World') - - assert foo().render() == \ -''' - - - Dominate - - -

Hello World

- -''' - - -def test_title(): - d = document() - assert d.title == 'Dominate' - - d = document(title='foobar') - assert d.title == 'foobar' - - d.title = 'baz' - assert d.title == 'baz' - - d.title = title('bar') - assert d.title == 'bar' - - assert d.render() == \ -''' - - - bar - - -''' - - -if __name__ == '__main__': - # test_doc() - test_decorator() +from dominate import document +from dominate.tags import * + +def test_doc(): + d = document() + assert d.render() == \ +''' + + + Dominate + + +''' + + +def test_decorator(): + @document() + def foo(): + p('Hello World') + + f = foo() + assert f.render() == \ +''' + + + Dominate + + +

Hello World

+ +''' + + +def test_bare_decorator(): + @document + def foo(): + p('Hello World') + + assert foo().render() == \ +''' + + + Dominate + + +

Hello World

+ +''' + + +def test_title(): + d = document() + assert d.title == 'Dominate' + + d = document(title='foobar') + assert d.title == 'foobar' + + d.title = 'baz' + assert d.title == 'baz' + + d.title = title('bar') + assert d.title == 'bar' + + assert d.render() == \ +''' + + + bar + + +''' + + +if __name__ == '__main__': + # test_doc() + test_decorator() diff --git a/tests/test_dom1core.py b/tests/test_dom1core.py index 163cd2f..7170f81 100644 --- a/tests/test_dom1core.py +++ b/tests/test_dom1core.py @@ -1,16 +1,16 @@ -from dominate.tags import * - -def test_dom(): - container = div() - with container.add(div(id='base')) as dom: - s1 = span('Hello', id='span1') - s2 = span('World', id='span2') - - s3 = span('foobar', id='span3') - dom.appendChild(s3) - - assert container.getElementById('base') is dom - assert container.getElementById('span1') is s1 - assert container.getElementById('span3') is s3 - assert container.getElementsByTagName('span') == [s1, s2, s3] - assert container.getElementsByTagName('SPAN') == [s1, s2, s3] +from dominate.tags import * + +def test_dom(): + container = div() + with container.add(div(id='base')) as dom: + s1 = span('Hello', id='span1') + s2 = span('World', id='span2') + + s3 = span('foobar', id='span3') + dom.appendChild(s3) + + assert container.getElementById('base') is dom + assert container.getElementById('span1') is s1 + assert container.getElementById('span3') is s3 + assert container.getElementsByTagName('span') == [s1, s2, s3] + assert container.getElementsByTagName('SPAN') == [s1, s2, s3] diff --git a/tests/test_html.py b/tests/test_html.py index 8b6b461..18ebbde 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -1,236 +1,236 @@ -from dominate.tags import * -import pytest - -try: - xrange = xrange -except NameError: - xrange = range - -def test_version(): - import dominate - version = '2.1.9' - assert dominate.version == version - assert dominate.__version__ == version - - -def test_arguments(): - assert html(body(h1('Hello, pyy!'))).render() == \ -''' - -

Hello, pyy!

- -''' - - -def test_kwargs(): - assert div( - id=4, - checked=True, - cls="mydiv", - data_name='foo', - onclick='alert(1);').render() == \ -'''
''' - - -def test_repr(): - import re - d = div() - assert repr(d).startswith('') - d += [1, {'id':'foo'}] - assert repr(d).startswith('') - - -def test_add(): - d = div() - with pytest.raises(ValueError): - d += None - d += 1 - d += xrange(2,3) - d += {'id': 'foo'} - assert d.render() == '
12\n
' - assert len(d) == 2 - assert d - with pytest.raises(IndexError): - d[2] - - with pytest.raises(TypeError): - d[None] - - del d[0] - assert len(d) == 1 - - -def test_iadd(): - list = ul() - for item in range(4): - list += li('Item #', item) - - # 2 children so doesn't render inline - assert list.render() == \ -'''
    -
  • Item #0 -
  • -
  • Item #1 -
  • -
  • Item #2 -
  • -
  • Item #3 -
  • -
''' - - -# copy rest of examples here - - -def test_context_manager(): - h = ul() - with h: - li('One') - li('Two') - li('Three') - - assert h.render() == \ -'''
    -
  • One
  • -
  • Two
  • -
  • Three
  • -
''' - - -def test_decorator(): - @div - def f(): - p('Hello') - - assert f().render() == \ -'''
-

Hello

-
''' - - d = div() - @d - def f2(): - p('Hello') - - assert f2().render() == \ -'''
-

Hello

-
''' - - @div(cls='three') - def f3(): - p('Hello') - assert f3().render() == \ -'''
-

Hello

-
''' - - -def test_nested_decorator(): - @div - def f1(): - p('hello') - - d = div() - with d: - f1() - - assert d.render() == \ -'''
-
-

hello

-
-
''' - - @div() - def f2(): - p('hello') - - d = div() - with d: - f2() - - assert d.render() == \ -'''
-
-

hello

-
-
''' - - -def test_text(): - from dominate.util import text - d = div() - with d: - text('Hello World') - - assert d.render() == \ - '''
- Hello World -
''' - - assert div(text('<>', escape=False)).render() == '''\ -
- <> -
''' - - assert div(text('<>')).render() == '''\ -
- <> -
''' - - -def test_raw(): - from dominate.util import raw - d = div() - with d: - raw('Hello World
') - - assert d.render() == \ - '''
- Hello World
-
''' - - -def test_escape(): - assert pre('<>').render() == '''\ -
<>
''' - - -def test_attributes(): - d = div() - d['id'] = 'foo' - assert d['id'] == 'foo' - del d['id'] - with pytest.raises(KeyError): - del d['id'] - with pytest.raises(AttributeError): - x = d['id'] - with d: - attr(data_test=False) - assert d['data-test'] == 'false' - - with pytest.raises(ValueError): - attr(id='moo') - - -def test_lazy(): - from dominate import util - executed = [False] - def _lazy(): - executed[0] = True - return span('Hi') - - d = div() - s = util.lazy(_lazy) - d += s - - assert executed[0] == False - assert d.render() == '
\n Hi\n
' - assert executed[0] == True - - - - +from dominate.tags import * +import pytest + +try: + xrange = xrange +except NameError: + xrange = range + +def test_version(): + import dominate + version = '2.1.9' + assert dominate.version == version + assert dominate.__version__ == version + + +def test_arguments(): + assert html(body(h1('Hello, pyy!'))).render() == \ +''' + +

Hello, pyy!

+ +''' + + +def test_kwargs(): + assert div( + id=4, + checked=True, + cls="mydiv", + data_name='foo', + onclick='alert(1);').render() == \ +'''
''' + + +def test_repr(): + import re + d = div() + assert repr(d).startswith('') + d += [1, {'id':'foo'}] + assert repr(d).startswith('') + + +def test_add(): + d = div() + with pytest.raises(ValueError): + d += None + d += 1 + d += xrange(2,3) + d += {'id': 'foo'} + assert d.render() == '
12\n
' + assert len(d) == 2 + assert d + with pytest.raises(IndexError): + d[2] + + with pytest.raises(TypeError): + d[None] + + del d[0] + assert len(d) == 1 + + +def test_iadd(): + list = ul() + for item in range(4): + list += li('Item #', item) + + # 2 children so doesn't render inline + assert list.render() == \ +'''
    +
  • Item #0 +
  • +
  • Item #1 +
  • +
  • Item #2 +
  • +
  • Item #3 +
  • +
''' + + +# copy rest of examples here + + +def test_context_manager(): + h = ul() + with h: + li('One') + li('Two') + li('Three') + + assert h.render() == \ +'''
    +
  • One
  • +
  • Two
  • +
  • Three
  • +
''' + + +def test_decorator(): + @div + def f(): + p('Hello') + + assert f().render() == \ +'''
+

Hello

+
''' + + d = div() + @d + def f2(): + p('Hello') + + assert f2().render() == \ +'''
+

Hello

+
''' + + @div(cls='three') + def f3(): + p('Hello') + assert f3().render() == \ +'''
+

Hello

+
''' + + +def test_nested_decorator(): + @div + def f1(): + p('hello') + + d = div() + with d: + f1() + + assert d.render() == \ +'''
+
+

hello

+
+
''' + + @div() + def f2(): + p('hello') + + d = div() + with d: + f2() + + assert d.render() == \ +'''
+
+

hello

+
+
''' + + +def test_text(): + from dominate.util import text + d = div() + with d: + text('Hello World') + + assert d.render() == \ + '''
+ Hello World +
''' + + assert div(text('<>', escape=False)).render() == '''\ +
+ <> +
''' + + assert div(text('<>')).render() == '''\ +
+ <> +
''' + + +def test_raw(): + from dominate.util import raw + d = div() + with d: + raw('Hello World
') + + assert d.render() == \ + '''
+ Hello World
+
''' + + +def test_escape(): + assert pre('<>').render() == '''\ +
<>
''' + + +def test_attributes(): + d = div() + d['id'] = 'foo' + assert d['id'] == 'foo' + del d['id'] + with pytest.raises(KeyError): + del d['id'] + with pytest.raises(AttributeError): + x = d['id'] + with d: + attr(data_test=False) + assert d['data-test'] == 'false' + + with pytest.raises(ValueError): + attr(id='moo') + + +def test_lazy(): + from dominate import util + executed = [False] + def _lazy(): + executed[0] = True + return span('Hi') + + d = div() + s = util.lazy(_lazy) + d += s + + assert executed[0] == False + assert d.render() == '
\n Hi\n
' + assert executed[0] == True + + + + diff --git a/tests/test_utils.py b/tests/test_utils.py index 4be54c2..4c80a87 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,32 +1,32 @@ -from dominate.tags import * -from dominate import util - -def test_include(): - import os - try: - f = open('_test_include.deleteme', 'w') - f.write('Hello World') - f.close() - - d = div() - d += util.include('_test_include.deleteme') - assert d.render() == '
Hello World
' - - finally: - try: - os.remove('_test_include.deleteme') - except: - pass - -def test_system(): - d = div() - d += util.system('echo Hello World') - assert d.render().replace('\r\n', '\n') == '
Hello World\n
' - - -def test_unescape(): - assert util.unescape('&<> ') == '&<> ' - -def test_url(): - assert util.url_escape('hi there?') == 'hi%20there%3F' +from dominate.tags import * +from dominate import util + +def test_include(): + import os + try: + f = open('_test_include.deleteme', 'w') + f.write('Hello World') + f.close() + + d = div() + d += util.include('_test_include.deleteme') + assert d.render() == '
Hello World
' + + finally: + try: + os.remove('_test_include.deleteme') + except: + pass + +def test_system(): + d = div() + d += util.system('echo Hello World') + assert d.render().replace('\r\n', '\n') == '
Hello World\n
' + + +def test_unescape(): + assert util.unescape('&<> ') == '&<> ' + +def test_url(): + assert util.url_escape('hi there?') == 'hi%20there%3F' assert util.url_unescape('hi%20there%3f') == 'hi there?' \ No newline at end of file