diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-09-25 22:31:16 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-10-31 13:44:53 -0400 |
commit | 654b462d668a2ced4e87077b9babb2590acbf983 (patch) | |
tree | 8b6023480423e990c9bbca7c280cb1cb58e012fc /test/base/test_tutorials.py | |
parent | 841eb216644202567ebddfc0badc51a3a35e98c3 (diff) | |
download | sqlalchemy-review/mike_bayer/tutorial20.tar.gz |
tutorial 2.0 WIPreview/mike_bayer/tutorial20
Add SelectBase.exists() method as it seems strange this is
not available already. The Exists construct itself does
not provide full SELECT-building capabilities so it makes
sense this should be used more like a scalar_subquery.
Make sure stream_results is getting set up when yield_per
is used, for 2.0 style statements as well. this was
hardcoded inside of Query.yield_per() and is now moved
to take place within QueryContext.
Change-Id: Icafcd4fd9b708772343d56edf40995c9e8f835d6
Diffstat (limited to 'test/base/test_tutorials.py')
-rw-r--r-- | test/base/test_tutorials.py | 51 |
1 files changed, 35 insertions, 16 deletions
diff --git a/test/base/test_tutorials.py b/test/base/test_tutorials.py index 4ac3fb981..ea2c1e362 100644 --- a/test/base/test_tutorials.py +++ b/test/base/test_tutorials.py @@ -56,7 +56,10 @@ class DocTest(fixtures.TestBase): self._teardown_create_table_patcher() self._teardown_logger() - def _run_doctest_for_content(self, name, content): + def _run_doctest(self, *fnames): + here = os.path.dirname(__file__) + sqla_base = os.path.normpath(os.path.join(here, "..", "..")) + optionflags = ( doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE @@ -68,23 +71,33 @@ class DocTest(fixtures.TestBase): optionflags=optionflags, checker=_get_unicode_checker(), ) - globs = {"print_function": print_function} parser = doctest.DocTestParser() - test = parser.get_doctest(content, globs, name, name, 0) - runner.run(test) - runner.summarize() - assert not runner.failures + globs = {"print_function": print_function} - def _run_doctest(self, fname): - here = os.path.dirname(__file__) - sqla_base = os.path.normpath(os.path.join(here, "..", "..")) - path = os.path.join(sqla_base, "doc/build", fname) - if not os.path.exists(path): - config.skip_test("Can't find documentation file %r" % path) - with open(path) as file_: - content = file_.read() - content = re.sub(r"{(?:stop|sql|opensql)}", "", content) - self._run_doctest_for_content(fname, content) + for fname in fnames: + path = os.path.join(sqla_base, "doc/build", fname) + if not os.path.exists(path): + config.skip_test("Can't find documentation file %r" % path) + with open(path) as file_: + content = file_.read() + content = re.sub(r"{(?:stop|sql|opensql)}", "", content) + + test = parser.get_doctest(content, globs, fname, fname, 0) + runner.run(test, clear_globs=False) + runner.summarize() + globs.update(test.globs) + assert not runner.failures + + def test_20_style(self): + self._run_doctest( + "tutorial/index.rst", + "tutorial/engine.rst", + "tutorial/dbapi_transactions.rst", + "tutorial/metadata.rst", + "tutorial/data.rst", + "tutorial/orm_data_manipulation.rst", + "tutorial/orm_related_objects.rst", + ) def test_orm(self): self._run_doctest("orm/tutorial.rst") @@ -93,6 +106,12 @@ class DocTest(fixtures.TestBase): def test_core(self): self._run_doctest("core/tutorial.rst") + def test_core_operators(self): + self._run_doctest("core/operators.rst") + + def test_orm_queryguide(self): + self._run_doctest("orm/queryguide.rst") + # unicode checker courtesy pytest |