From 1874b7d8abe1ef6409d1e40ef8a9949de5ea0dda Mon Sep 17 00:00:00 2001 From: Jens Hedegaard Nielsen Date: Wed, 24 Feb 2016 14:26:43 +0000 Subject: [PATCH 1/4] Add test of sample corpus to unittest suite --- pyoracc/test/fixtures/__init__.py | 4 ++++ pyoracc/test/model/test_corpus.py | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pyoracc/test/fixtures/__init__.py b/pyoracc/test/fixtures/__init__.py index ef5ec4f..14a7259 100644 --- a/pyoracc/test/fixtures/__init__.py +++ b/pyoracc/test/fixtures/__init__.py @@ -16,6 +16,10 @@ def tiny_corpus(): return os.path.join(os.path.dirname(here), 'tiny_corpus') +def sample_corpus(): + return os.path.join(os.path.dirname(here), 'sample_corpus') + + def anzu(): return sample_file("anzu") diff --git a/pyoracc/test/model/test_corpus.py b/pyoracc/test/model/test_corpus.py index a3ed1e6..19bfda4 100644 --- a/pyoracc/test/model/test_corpus.py +++ b/pyoracc/test/model/test_corpus.py @@ -1,9 +1,15 @@ from ...model.corpus import Corpus -from ..fixtures import tiny_corpus +from ..fixtures import tiny_corpus, sample_corpus def test_tiny(): corpus = Corpus(source=tiny_corpus()) assert corpus.successes == 1 assert corpus.failures == 1 + + +def test_sample(): + corpus = Corpus(source=sample_corpus()) + assert corpus.successes == 36 + assert corpus.failures == 3 From 7cf016c92f3c678971d10aedf8e60af2cc48ca89 Mon Sep 17 00:00:00 2001 From: Jens Hedegaard Nielsen Date: Wed, 24 Feb 2016 15:29:07 +0000 Subject: [PATCH 2/4] Mark test as slow --- conftest.py | 6 ++++++ pyoracc/test/model/test_corpus.py | 9 +++++++++ 2 files changed, 15 insertions(+) create mode 100644 conftest.py diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..a1eaf23 --- /dev/null +++ b/conftest.py @@ -0,0 +1,6 @@ +import pytest + + +def pytest_addoption(parser): + parser.addoption("--runslow", action="store_true", + help="run slow tests") diff --git a/pyoracc/test/model/test_corpus.py b/pyoracc/test/model/test_corpus.py index 19bfda4..af367da 100644 --- a/pyoracc/test/model/test_corpus.py +++ b/pyoracc/test/model/test_corpus.py @@ -1,14 +1,23 @@ +import pytest + from ...model.corpus import Corpus from ..fixtures import tiny_corpus, sample_corpus +slow = pytest.mark.skipif( + not pytest.config.getoption("--runslow"), + reason="need --runslow option to run" +) + + def test_tiny(): corpus = Corpus(source=tiny_corpus()) assert corpus.successes == 1 assert corpus.failures == 1 +@slow def test_sample(): corpus = Corpus(source=sample_corpus()) assert corpus.successes == 36 From 0b8d6311015b71612f580efd4c94ffd1c61ef97b Mon Sep 17 00:00:00 2001 From: Jens Hedegaard Nielsen Date: Wed, 24 Feb 2016 15:30:40 +0000 Subject: [PATCH 3/4] Run slow tests with cpython --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 166780b..44a51c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -50,7 +50,7 @@ script: if [ "$JYTHON" == "true" ]; then py.test else - py.test --cov=pyoracc --cov-report xml + py.test --cov=pyoracc --cov-report xml --runslow fi - pep8 --exclude=parsetab.py . From a466e3c248ce00f1f623ac90c4129c23cff44b29 Mon Sep 17 00:00:00 2001 From: Jens Hedegaard Nielsen Date: Wed, 24 Feb 2016 15:44:48 +0000 Subject: [PATCH 4/4] Make it possible to test the whole corpus --- pyoracc/test/fixtures/__init__.py | 13 +++++++++++++ pyoracc/test/model/test_corpus.py | 13 ++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pyoracc/test/fixtures/__init__.py b/pyoracc/test/fixtures/__init__.py index 14a7259..7a64109 100644 --- a/pyoracc/test/fixtures/__init__.py +++ b/pyoracc/test/fixtures/__init__.py @@ -20,6 +20,19 @@ def sample_corpus(): return os.path.join(os.path.dirname(here), 'sample_corpus') +def whole_corpus(): + """ + Return the path to the full oracc corpus. This is not bundled with + pyoracc and only works if the environmental variable oracc_corpus_path + is set to the correct directory. + """ + try: + oracc_corpus_path = os.environ['oracc_corpus_path'] + except KeyError: + oracc_corpus_path = None + return oracc_corpus_path + + def anzu(): return sample_file("anzu") diff --git a/pyoracc/test/model/test_corpus.py b/pyoracc/test/model/test_corpus.py index af367da..f1118a6 100644 --- a/pyoracc/test/model/test_corpus.py +++ b/pyoracc/test/model/test_corpus.py @@ -2,7 +2,7 @@ from ...model.corpus import Corpus -from ..fixtures import tiny_corpus, sample_corpus +from ..fixtures import tiny_corpus, sample_corpus, whole_corpus slow = pytest.mark.skipif( @@ -22,3 +22,14 @@ def test_sample(): corpus = Corpus(source=sample_corpus()) assert corpus.successes == 36 assert corpus.failures == 3 + + +@pytest.mark.skipif(not whole_corpus(), + reason="Need to set oracc_corpus_path to point " + "to the whole corpus, which is not bundled with " + "pyoracc") +@slow +def test_whole(): + corpus = Corpus(source=whole_corpus()) + assert corpus.successes == 2474 + assert corpus.failures == 394