Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
django
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
django
Commits
751b007c
Kaydet (Commit)
751b007c
authored
Nis 06, 2013
tarafından
Preston Timmons
Kaydeden (comit)
Carl Meyer
Nis 12, 2013
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Modified test_utils to work with unittest2 discovery.
üst
cdf520ee
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
97 additions
and
85 deletions
+97
-85
simple.py
django/test/simple.py
+10
-9
doctest_output.py
tests/test_utils/doctest_output.py
+77
-0
tests.py
tests/test_utils/tests.py
+10
-76
No files found.
django/test/simple.py
Dosyayı görüntüle @
751b007c
...
...
@@ -42,6 +42,13 @@ def get_tests(app_module):
return
test_module
def
make_doctest
(
module
):
return
doctest
.
DocTestSuite
(
module
,
checker
=
doctestOutputChecker
,
runner
=
DocTestRunner
,
)
def
build_suite
(
app_module
):
"""
Create a complete Django test suite for the provided application module.
...
...
@@ -56,9 +63,7 @@ def build_suite(app_module):
suite
.
addTest
(
unittest
.
defaultTestLoader
.
loadTestsFromModule
(
app_module
))
try
:
suite
.
addTest
(
doctest
.
DocTestSuite
(
app_module
,
checker
=
doctestOutputChecker
,
runner
=
DocTestRunner
))
suite
.
addTest
(
make_doctest
(
app_module
))
except
ValueError
:
# No doc tests in models.py
pass
...
...
@@ -75,9 +80,7 @@ def build_suite(app_module):
suite
.
addTest
(
unittest
.
defaultTestLoader
.
loadTestsFromModule
(
test_module
))
try
:
suite
.
addTest
(
doctest
.
DocTestSuite
(
test_module
,
checker
=
doctestOutputChecker
,
runner
=
DocTestRunner
))
suite
.
addTest
(
make_doctest
(
test_module
))
except
ValueError
:
# No doc tests in tests.py
pass
...
...
@@ -130,9 +133,7 @@ def build_test(label):
tests
=
[]
for
module
in
app_module
,
test_module
:
try
:
doctests
=
doctest
.
DocTestSuite
(
module
,
checker
=
doctestOutputChecker
,
runner
=
DocTestRunner
)
doctests
=
make_doctest
(
module
)
# Now iterate over the suite, looking for doctests whose name
# matches the pattern that was given
for
test
in
doctests
:
...
...
tests/test_utils/doctest_output.py
0 → 100644
Dosyayı görüntüle @
751b007c
from
django.utils
import
six
__test__
=
{
"API_TEST"
:
r"""
# Some checks of the doctest output normalizer.
# Standard doctests do fairly
>>> import json
>>> from django.utils.xmlutils import SimplerXMLGenerator
>>> from django.utils.six import StringIO
>>> def produce_json():
... return json.dumps(['foo', {'bar': ('baz', None, 1.0, 2), 'whiz': 42}])
>>> def produce_xml():
... stream = StringIO()
... xml = SimplerXMLGenerator(stream, encoding='utf-8')
... xml.startDocument()
... xml.startElement("foo", {"aaa" : "1.0", "bbb": "2.0"})
... xml.startElement("bar", {"ccc" : "3.0"})
... xml.characters("Hello")
... xml.endElement("bar")
... xml.startElement("whiz", {})
... xml.characters("Goodbye")
... xml.endElement("whiz")
... xml.endElement("foo")
... xml.endDocument()
... return stream.getvalue()
>>> def produce_xml_fragment():
... stream = StringIO()
... xml = SimplerXMLGenerator(stream, encoding='utf-8')
... xml.startElement("foo", {"aaa": "1.0", "bbb": "2.0"})
... xml.characters("Hello")
... xml.endElement("foo")
... xml.startElement("bar", {"ccc": "3.0", "ddd": "4.0"})
... xml.endElement("bar")
... return stream.getvalue()
# JSON output is normalized for field order, so it doesn't matter
# which order json dictionary attributes are listed in output
>>> produce_json()
'["foo", {"bar": ["baz", null, 1.0, 2], "whiz": 42}]'
>>> produce_json()
'["foo", {"whiz": 42, "bar": ["baz", null, 1.0, 2]}]'
# XML output is normalized for attribute order, so it doesn't matter
# which order XML element attributes are listed in output
>>> produce_xml()
'<?xml version="1.0" encoding="UTF-8"?>\n<foo aaa="1.0" bbb="2.0"><bar ccc="3.0">Hello</bar><whiz>Goodbye</whiz></foo>'
>>> produce_xml()
'<?xml version="1.0" encoding="UTF-8"?>\n<foo bbb="2.0" aaa="1.0"><bar ccc="3.0">Hello</bar><whiz>Goodbye</whiz></foo>'
>>> produce_xml_fragment()
'<foo aaa="1.0" bbb="2.0">Hello</foo><bar ccc="3.0" ddd="4.0"></bar>'
>>> produce_xml_fragment()
'<foo bbb="2.0" aaa="1.0">Hello</foo><bar ddd="4.0" ccc="3.0"></bar>'
"""
}
if
not
six
.
PY3
:
__test__
[
"API_TEST"
]
+=
"""
>>> def produce_long():
... return 42L
>>> def produce_int():
... return 42
# Long values are normalized and are comparable to normal integers ...
>>> produce_long()
42
# ... and vice versa
>>> produce_int()
42L
"""
tests/test_utils/tests.py
Dosyayı görüntüle @
751b007c
# -*- coding: utf-8 -*-
from
__future__
import
absolute_import
,
unicode_literals
from
StringIO
import
StringIO
import
warnings
from
django.db
import
connection
...
...
@@ -8,8 +9,10 @@ from django.http import HttpResponse
from
django.template.loader
import
render_to_string
from
django.test
import
SimpleTestCase
,
TestCase
,
skipUnlessDBFeature
from
django.test.html
import
HTMLParseError
,
parse_html
from
django.test.simple
import
make_doctest
from
django.test.utils
import
CaptureQueriesContext
from
django.utils
import
six
from
django.utils
import
unittest
from
django.utils.unittest
import
skip
from
.models
import
Person
...
...
@@ -621,79 +624,10 @@ class AssertFieldOutputTests(SimpleTestCase):
}
self
.
assertFieldOutput
(
MyCustomField
,
{},
{},
empty_value
=
None
)
__test__
=
{
"API_TEST"
:
r"""
# Some checks of the doctest output normalizer.
# Standard doctests do fairly
>>> import json
>>> from django.utils.xmlutils import SimplerXMLGenerator
>>> from django.utils.six import StringIO
>>> def produce_json():
... return json.dumps(['foo', {'bar': ('baz', None, 1.0, 2), 'whiz': 42}])
>>> def produce_xml():
... stream = StringIO()
... xml = SimplerXMLGenerator(stream, encoding='utf-8')
... xml.startDocument()
... xml.startElement("foo", {"aaa" : "1.0", "bbb": "2.0"})
... xml.startElement("bar", {"ccc" : "3.0"})
... xml.characters("Hello")
... xml.endElement("bar")
... xml.startElement("whiz", {})
... xml.characters("Goodbye")
... xml.endElement("whiz")
... xml.endElement("foo")
... xml.endDocument()
... return stream.getvalue()
>>> def produce_xml_fragment():
... stream = StringIO()
... xml = SimplerXMLGenerator(stream, encoding='utf-8')
... xml.startElement("foo", {"aaa": "1.0", "bbb": "2.0"})
... xml.characters("Hello")
... xml.endElement("foo")
... xml.startElement("bar", {"ccc": "3.0", "ddd": "4.0"})
... xml.endElement("bar")
... return stream.getvalue()
# JSON output is normalized for field order, so it doesn't matter
# which order json dictionary attributes are listed in output
>>> produce_json()
'["foo", {"bar": ["baz", null, 1.0, 2], "whiz": 42}]'
>>> produce_json()
'["foo", {"whiz": 42, "bar": ["baz", null, 1.0, 2]}]'
# XML output is normalized for attribute order, so it doesn't matter
# which order XML element attributes are listed in output
>>> produce_xml()
'<?xml version="1.0" encoding="UTF-8"?>\n<foo aaa="1.0" bbb="2.0"><bar ccc="3.0">Hello</bar><whiz>Goodbye</whiz></foo>'
>>> produce_xml()
'<?xml version="1.0" encoding="UTF-8"?>\n<foo bbb="2.0" aaa="1.0"><bar ccc="3.0">Hello</bar><whiz>Goodbye</whiz></foo>'
>>> produce_xml_fragment()
'<foo aaa="1.0" bbb="2.0">Hello</foo><bar ccc="3.0" ddd="4.0"></bar>'
>>> produce_xml_fragment()
'<foo bbb="2.0" aaa="1.0">Hello</foo><bar ddd="4.0" ccc="3.0"></bar>'
"""
}
if
not
six
.
PY3
:
__test__
[
"API_TEST"
]
+=
"""
>>> def produce_long():
... return 42L
>>> def produce_int():
... return 42
# Long values are normalized and are comparable to normal integers ...
>>> produce_long()
42
# ... and vice versa
>>> produce_int()
42L
"""
class
DoctestNormalizerTest
(
SimpleTestCase
):
def
test_normalizer
(
self
):
suite
=
make_doctest
(
"test_utils.doctest_output"
)
failures
=
unittest
.
TextTestRunner
(
stream
=
StringIO
())
.
run
(
suite
)
self
.
assertEqual
(
failures
.
failures
,
[])
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment