From 2c20e74d1664a6705115c016d7cd83b30f3e6228 Mon Sep 17 00:00:00 2001 From: Chris Cummins Date: Wed, 8 Jan 2020 16:46:52 +0000 Subject: [PATCH] Replace implicit conftest with pytest plugin. github.com/ChrisCummins/phd/issues/70 --- deeplearning/clgen/BUILD | 16 ++-------------- deeplearning/clgen/clgen_test.py | 4 ++-- deeplearning/clgen/corpuses/BUILD | 6 +++--- deeplearning/clgen/corpuses/atomizers_test.py | 4 ++-- deeplearning/clgen/corpuses/corpuses_test.py | 4 ++-- deeplearning/clgen/corpuses/encoded_test.py | 3 ++- deeplearning/clgen/docker/BUILD | 2 +- .../clgen/docker/export_pretrained_model_test.py | 4 ++-- deeplearning/clgen/models/BUILD | 10 +++++----- deeplearning/clgen/models/builders_test.py | 2 ++ .../clgen/models/data_generators_test.py | 3 ++- deeplearning/clgen/models/keras_backend_test.py | 3 ++- deeplearning/clgen/models/models_test.py | 4 ++-- .../clgen/models/tensorflow_backend_test.py | 3 ++- deeplearning/clgen/preprocessors/BUILD | 2 +- deeplearning/clgen/preprocessors/normalizer.py | 4 ++-- .../clgen/preprocessors/preprocessors_test.py | 2 +- deeplearning/clgen/samplers_test.py | 2 ++ 18 files changed, 37 insertions(+), 41 deletions(-) diff --git a/deeplearning/clgen/BUILD b/deeplearning/clgen/BUILD index e9c930d3c..ab83df9df 100644 --- a/deeplearning/clgen/BUILD +++ b/deeplearning/clgen/BUILD @@ -84,8 +84,8 @@ py_test( ], deps = [ ":clgen", - ":conftest", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:fs", "//labm8/py:pbutil", @@ -94,18 +94,6 @@ py_test( ], ) -py_library( - name = "conftest", - testonly = True, - srcs = ["conftest.py"], - visibility = ["//visibility:public"], - deps = [ - "//deeplearning/clgen/proto:clgen_pb_py", - "//labm8/py:pbutil", - "//labm8/py:test", - ], -) - py_library( name = "errors", srcs = ["errors.py"], @@ -207,9 +195,9 @@ py_test( name = "samplers_test", srcs = ["samplers_test.py"], deps = [ - ":conftest", ":errors", ":samplers", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:test", ], diff --git a/deeplearning/clgen/clgen_test.py b/deeplearning/clgen/clgen_test.py index ced461e2e..41aae7d0c 100644 --- a/deeplearning/clgen/clgen_test.py +++ b/deeplearning/clgen/clgen_test.py @@ -17,8 +17,6 @@ import pathlib import tempfile -import pytest - from deeplearning.clgen import clgen from deeplearning.clgen import errors from deeplearning.clgen.proto import clgen_pb2 @@ -28,6 +26,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + # Instance tests. diff --git a/deeplearning/clgen/corpuses/BUILD b/deeplearning/clgen/corpuses/BUILD index 1541d33a7..3d3feb435 100644 --- a/deeplearning/clgen/corpuses/BUILD +++ b/deeplearning/clgen/corpuses/BUILD @@ -32,7 +32,7 @@ py_test( srcs = ["atomizers_test.py"], deps = [ ":atomizers", - "//deeplearning/clgen:conftest", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:test", ], @@ -72,12 +72,12 @@ py_test( ":corpuses", ":encoded", ":preprocessed", - "//deeplearning/clgen:conftest", "//deeplearning/clgen:errors", "//deeplearning/clgen/preprocessors:common", "//deeplearning/clgen/preprocessors:cxx", "//deeplearning/clgen/preprocessors:opencl", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:fs", "//labm8/py:test", @@ -109,8 +109,8 @@ py_test( ":atomizers", ":encoded", ":preprocessed", - "//deeplearning/clgen:conftest", "//deeplearning/clgen:errors", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:test", ], diff --git a/deeplearning/clgen/corpuses/atomizers_test.py b/deeplearning/clgen/corpuses/atomizers_test.py index bce33ebb7..755cfeb23 100644 --- a/deeplearning/clgen/corpuses/atomizers_test.py +++ b/deeplearning/clgen/corpuses/atomizers_test.py @@ -16,8 +16,6 @@ import pathlib import tempfile -import pytest - import deeplearning.clgen.errors from deeplearning.clgen.corpuses import atomizers from labm8.py import app @@ -25,6 +23,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + # The set of multichar tokens for the OpenCL programming language. OPENCL_ATOMS = set( [ diff --git a/deeplearning/clgen/corpuses/corpuses_test.py b/deeplearning/clgen/corpuses/corpuses_test.py index 47d8689b4..c2fc8582b 100644 --- a/deeplearning/clgen/corpuses/corpuses_test.py +++ b/deeplearning/clgen/corpuses/corpuses_test.py @@ -18,8 +18,6 @@ import pathlib import tempfile -import pytest - from deeplearning.clgen import errors from deeplearning.clgen.corpuses import corpuses from deeplearning.clgen.corpuses import encoded @@ -30,6 +28,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + # The Corpus.hash for an OpenCL corpus of the abc_corpus. ABC_CORPUS_HASH = "cb7c7a23c433a1f628c9b120378759f1723fdf42" diff --git a/deeplearning/clgen/corpuses/encoded_test.py b/deeplearning/clgen/corpuses/encoded_test.py index 0f885e505..1fab38457 100644 --- a/deeplearning/clgen/corpuses/encoded_test.py +++ b/deeplearning/clgen/corpuses/encoded_test.py @@ -17,7 +17,6 @@ import tempfile import numpy as np -import pytest from deeplearning.clgen import errors from deeplearning.clgen.corpuses import atomizers @@ -28,6 +27,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + @test.Fixture(scope="function") def abc_atomizer() -> atomizers.AsciiCharacterAtomizer: diff --git a/deeplearning/clgen/docker/BUILD b/deeplearning/clgen/docker/BUILD index 29c314b61..30df3a42d 100644 --- a/deeplearning/clgen/docker/BUILD +++ b/deeplearning/clgen/docker/BUILD @@ -50,8 +50,8 @@ py_test( deps = [ ":export_pretrained_model", "//deeplearning/clgen", - "//deeplearning/clgen:conftest", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:test", "//third_party/py/pytest", diff --git a/deeplearning/clgen/docker/export_pretrained_model_test.py b/deeplearning/clgen/docker/export_pretrained_model_test.py index 75bb70cb0..1a0458704 100644 --- a/deeplearning/clgen/docker/export_pretrained_model_test.py +++ b/deeplearning/clgen/docker/export_pretrained_model_test.py @@ -1,8 +1,6 @@ """Unit tests for //deeplearning/clgen/docker:export_pretrained_model.""" import pathlib -import pytest - from deeplearning.clgen import clgen from deeplearning.clgen.docker import export_pretrained_model from deeplearning.clgen.proto import clgen_pb2 @@ -11,6 +9,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + @test.Fixture(scope="function") def abc_instance(abc_instance_config: clgen_pb2.Instance): diff --git a/deeplearning/clgen/models/BUILD b/deeplearning/clgen/models/BUILD index d5c5f11f8..a0aefa646 100644 --- a/deeplearning/clgen/models/BUILD +++ b/deeplearning/clgen/models/BUILD @@ -48,8 +48,8 @@ py_test( srcs = ["builders_test.py"], deps = [ ":builders", - "//deeplearning/clgen:conftest", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:test", ], @@ -72,8 +72,8 @@ py_test( srcs = ["data_generators_test.py"], deps = [ ":data_generators", - "//deeplearning/clgen:conftest", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:test", ], @@ -108,9 +108,9 @@ py_test( deps = [ ":keras_backend", ":models", - "//deeplearning/clgen:conftest", "//deeplearning/clgen:sample_observers", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:crypto", "//labm8/py:fs", @@ -173,8 +173,8 @@ py_test( srcs = ["models_test.py"], deps = [ ":models", - "//deeplearning/clgen:conftest", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:crypto", "//labm8/py:fs", @@ -217,8 +217,8 @@ py_test( deps = [ ":models", ":tensorflow_backend", - "//deeplearning/clgen:conftest", "//deeplearning/clgen/proto:clgen_pb_py", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:crypto", "//labm8/py:fs", diff --git a/deeplearning/clgen/models/builders_test.py b/deeplearning/clgen/models/builders_test.py index a0df44117..fd5d04a91 100644 --- a/deeplearning/clgen/models/builders_test.py +++ b/deeplearning/clgen/models/builders_test.py @@ -23,6 +23,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + # AssertIsBuildable() tests. diff --git a/deeplearning/clgen/models/data_generators_test.py b/deeplearning/clgen/models/data_generators_test.py index 02fcf809a..1d9aca049 100644 --- a/deeplearning/clgen/models/data_generators_test.py +++ b/deeplearning/clgen/models/data_generators_test.py @@ -14,7 +14,6 @@ # along with clgen. If not, see . """Unit tests for //deeplearning/clgen/models/data_generators.py.""" import numpy as np -import pytest from deeplearning.clgen import errors from deeplearning.clgen.models import data_generators @@ -23,6 +22,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + class CorpusMock(object): def __init__(self, corpus_length: int = 100, vocabulary_size: int = 10): diff --git a/deeplearning/clgen/models/keras_backend_test.py b/deeplearning/clgen/models/keras_backend_test.py index 66cb54524..2c1a4bef0 100644 --- a/deeplearning/clgen/models/keras_backend_test.py +++ b/deeplearning/clgen/models/keras_backend_test.py @@ -15,7 +15,6 @@ """Unit tests for //deeplearning/clgen/models/keras_backend.py.""" import checksumdir import numpy as np -import pytest from deeplearning.clgen import sample_observers from deeplearning.clgen.models import keras_backend @@ -29,6 +28,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + class MockSampler(object): """Mock class for a Sampler.""" diff --git a/deeplearning/clgen/models/models_test.py b/deeplearning/clgen/models/models_test.py index de0e1b220..c97af0a8f 100644 --- a/deeplearning/clgen/models/models_test.py +++ b/deeplearning/clgen/models/models_test.py @@ -15,8 +15,6 @@ """Unit tests for //deeplearning/clgen/models/models.py.""" import pathlib -import pytest - from deeplearning.clgen import errors from deeplearning.clgen.models import models from deeplearning.clgen.proto import internal_pb2 @@ -27,6 +25,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + # The Model.hash for an instance of abc_model_config. ABC_MODEL_HASH = "bf95e335177883a9204a560617990caf3fd1efc6" diff --git a/deeplearning/clgen/models/tensorflow_backend_test.py b/deeplearning/clgen/models/tensorflow_backend_test.py index 6b47877dd..6418261f7 100644 --- a/deeplearning/clgen/models/tensorflow_backend_test.py +++ b/deeplearning/clgen/models/tensorflow_backend_test.py @@ -15,7 +15,6 @@ """Unit tests for //deeplearning/clgen/models/tensorflow_backend.py.""" import checksumdir import numpy as np -import pytest from deeplearning.clgen import sample_observers from deeplearning.clgen.models import models @@ -28,6 +27,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + class MockSampler(object): """Mock class for a Sampler.""" diff --git a/deeplearning/clgen/preprocessors/BUILD b/deeplearning/clgen/preprocessors/BUILD index 2bda48070..748298b88 100644 --- a/deeplearning/clgen/preprocessors/BUILD +++ b/deeplearning/clgen/preprocessors/BUILD @@ -546,8 +546,8 @@ py_test( deps = [ ":preprocessors", ":public", - "//deeplearning/clgen:conftest", "//deeplearning/clgen:errors", + "//deeplearning/clgen/tests:fixtures", "//labm8/py:app", "//labm8/py:fs", "//labm8/py:test", diff --git a/deeplearning/clgen/preprocessors/normalizer.py b/deeplearning/clgen/preprocessors/normalizer.py index 2e2748fa2..d545f3e95 100644 --- a/deeplearning/clgen/preprocessors/normalizer.py +++ b/deeplearning/clgen/preprocessors/normalizer.py @@ -24,10 +24,10 @@ FLAGS = app.FLAGS +# Path of the clang rewriter binary. CLGEN_REWRITER = bazelutil.DataPath( "phd/deeplearning/clgen/preprocessors/clang_rewriter" ) -assert CLGEN_REWRITER.is_file() # On Linux we must preload the LLVM libraries. CLGEN_REWRITER_ENV = os.environ.copy() @@ -89,7 +89,7 @@ def NormalizeIdentifiers( ) stdout, stderr = process.communicate() app.Log(2, stderr) - # If there was nothing to rewrite, rewriter exits with error code: + # If there was nothing to rewrite, the rewriter exits with error code: EUGLY_CODE = 204 if process.returncode == EUGLY_CODE: # Propagate the error: diff --git a/deeplearning/clgen/preprocessors/preprocessors_test.py b/deeplearning/clgen/preprocessors/preprocessors_test.py index 8f8f39444..1428431a9 100644 --- a/deeplearning/clgen/preprocessors/preprocessors_test.py +++ b/deeplearning/clgen/preprocessors/preprocessors_test.py @@ -94,7 +94,7 @@ def test_GetPreprocessFunction_mock_preprocessor(): f = preprocessors.GetPreprocessorFunction( "deeplearning.clgen.preprocessors.preprocessors_test:MockPreprocessor" ) - assert f == MockPreprocessor + assert f.__name__ == "MockPreprocessor" def test_GetPreprocessorFunction_absolute_path(tempdir: pathlib.Path): diff --git a/deeplearning/clgen/samplers_test.py b/deeplearning/clgen/samplers_test.py index 1a7168816..c19520908 100644 --- a/deeplearning/clgen/samplers_test.py +++ b/deeplearning/clgen/samplers_test.py @@ -26,6 +26,8 @@ FLAGS = app.FLAGS +pytest_plugins = ["deeplearning.clgen.tests.fixtures"] + class AtomizerMock(object): """Mock class for atomizer."""