Skip to content

Commit

Permalink
Replace implicit conftest.py with pytest plugin.
Browse files Browse the repository at this point in the history
github.com//issues/70
  • Loading branch information
ChrisCummins committed Jan 8, 2020
1 parent 997cbd6 commit c898eb4
Showing 12 changed files with 53 additions and 44 deletions.
26 changes: 6 additions & 20 deletions deeplearning/deepsmith/BUILD
Original file line number Diff line number Diff line change
@@ -19,20 +19,6 @@ licenses(["restricted"]) # GPL v3

exports_files(["LICENSE"])

py_library(
name = "conftest",
testonly = 1,
srcs = ["conftest.py"],
data = glob(["tests/data/datastores/*"]),
visibility = ["//deeplearning/deepsmith:__subpackages__"],
deps = [
":datastore",
":db",
"//deeplearning/deepsmith/proto:deepsmith_pb_py_grpc",
"//labm8/py:test",
],
)

py_library(
name = "client",
srcs = ["client.py"],
@@ -81,9 +67,9 @@ py_test(
size = "small",
srcs = ["db_test.py"],
deps = [
":conftest",
":db",
":toolchain",
"//deeplearning/deepsmith/tests:fixtures",
"//labm8/py:app",
"//labm8/py:test",
],
@@ -107,9 +93,9 @@ py_test(
size = "small",
srcs = ["generator_test.py"],
deps = [
":conftest",
":generator",
"//deeplearning/deepsmith/proto:deepsmith_pb_py_grpc",
"//deeplearning/deepsmith/tests:fixtures",
"//labm8/py:app",
"//labm8/py:test",
],
@@ -134,9 +120,9 @@ py_test(
size = "small",
srcs = ["harness_test.py"],
deps = [
":conftest",
":harness",
"//deeplearning/deepsmith/proto:deepsmith_pb_py_grpc",
"//deeplearning/deepsmith/tests:fixtures",
"//labm8/py:app",
"//labm8/py:test",
],
@@ -186,14 +172,14 @@ py_test(
srcs = ["result_test.py"],
deps = [
":client",
":conftest",
":generator",
":harness",
":profiling_event",
":result",
":testbed",
":testcase",
"//deeplearning/deepsmith/proto:deepsmith_pb_py_grpc",
"//deeplearning/deepsmith/tests:fixtures",
"//labm8/py:app",
"//labm8/py:labdate",
"//labm8/py:test",
@@ -231,10 +217,10 @@ py_test(
size = "small",
srcs = ["testbed_test.py"],
deps = [
":conftest",
":testbed",
":toolchain",
"//deeplearning/deepsmith/proto:deepsmith_pb_py_grpc",
"//deeplearning/deepsmith/tests:fixtures",
"//labm8/py:app",
"//labm8/py:test",
],
@@ -264,13 +250,13 @@ py_test(
srcs = ["testcase_test.py"],
deps = [
":client",
":conftest",
":generator",
":harness",
":profiling_event",
":testcase",
":toolchain",
"//deeplearning/deepsmith/proto:deepsmith_pb_py_grpc",
"//deeplearning/deepsmith/tests:fixtures",
"//labm8/py:app",
"//labm8/py:labdate",
"//labm8/py:test",
4 changes: 2 additions & 2 deletions deeplearning/deepsmith/db_test.py
Original file line number Diff line number Diff line change
@@ -13,15 +13,15 @@
# You should have received a copy of the GNU General Public License
# along with DeepSmith. If not, see <https://www.gnu.org/licenses/>.
"""Unit tests for :db."""
import pytest

from deeplearning.deepsmith import db
from deeplearning.deepsmith import toolchain
from labm8.py import app
from labm8.py import test

FLAGS = app.FLAGS

pytest_plugins = ["deeplearning.deepsmith.tests.fixtures"]


def HasFieldMock(self, name):
"""Mock for proto 'HasField' method"""
2 changes: 2 additions & 0 deletions deeplearning/deepsmith/generator_test.py
Original file line number Diff line number Diff line change
@@ -23,6 +23,8 @@

FLAGS = app.FLAGS

pytest_plugins = ["deeplearning.deepsmith.tests.fixtures"]


def test_Generator_ToProto():
generator = deeplearning.deepsmith.generator.Generator(
2 changes: 0 additions & 2 deletions deeplearning/deepsmith/generators/clsmith_test.py
Original file line number Diff line number Diff line change
@@ -16,8 +16,6 @@
import os
import tempfile

import pytest

from deeplearning.deepsmith.generators import clsmith
from deeplearning.deepsmith.proto import deepsmith_pb2
from deeplearning.deepsmith.proto import generator_pb2
2 changes: 2 additions & 0 deletions deeplearning/deepsmith/harness_test.py
Original file line number Diff line number Diff line change
@@ -23,6 +23,8 @@

FLAGS = app.FLAGS

pytest_plugins = ["deeplearning.deepsmith.tests.fixtures"]


def test_Harness_ToProto():
harness = deeplearning.deepsmith.harness.Harness(
4 changes: 2 additions & 2 deletions deeplearning/deepsmith/proto/datastore.proto
Original file line number Diff line number Diff line change
@@ -63,8 +63,8 @@ message DataStore {

// A map of datastore names to configs.
//
// Used by //deeplearning/deepsmith:conftest to parameterize the test fixtures
// used for unit tests.
// Used by //deeplearning/deepsmith/tests:fixtures to parameterize the test
// fixtures used for unit tests.
message DataStoreTestSet {
map<string, DataStore> values = 1;
}
2 changes: 2 additions & 0 deletions deeplearning/deepsmith/result_test.py
Original file line number Diff line number Diff line change
@@ -28,6 +28,8 @@

FLAGS = app.FLAGS

pytest_plugins = ["deeplearning.deepsmith.tests.fixtures"]


def test_Result_ToProto():
now = datetime.datetime.now()
2 changes: 2 additions & 0 deletions deeplearning/deepsmith/testbed_test.py
Original file line number Diff line number Diff line change
@@ -24,6 +24,8 @@

FLAGS = app.FLAGS

pytest_plugins = ["deeplearning.deepsmith.tests.fixtures"]


def test_Testbed_ToProto():
testbed = deeplearning.deepsmith.testbed.Testbed(
2 changes: 2 additions & 0 deletions deeplearning/deepsmith/testcase_test.py
Original file line number Diff line number Diff line change
@@ -27,6 +27,8 @@

FLAGS = app.FLAGS

pytest_plugins = ["deeplearning.deepsmith.tests.fixtures"]


def test_Testcase_ToProto():
now = labdate.GetUtcMillisecondsNow()
15 changes: 15 additions & 0 deletions deeplearning/deepsmith/tests/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Testing utilities for //deeplearning/deepsmith.

py_library(
name = "fixtures",
testonly = 1,
srcs = ["fixtures.py"],
data = glob(["data/datastores/*"]),
visibility = ["//deeplearning/deepsmith:__subpackages__"],
deps = [
"//deeplearning/deepsmith:datastore",
"//deeplearning/deepsmith:db",
"//deeplearning/deepsmith/proto:deepsmith_pb_py_grpc",
"//labm8/py:test",
],
)
Original file line number Diff line number Diff line change
@@ -90,5 +90,5 @@ def session(request) -> db.session_t:
Returns:
A Session instance.
"""
with ds(request).Session() as session_:
with datastore.DataStore(request.param).Session() as session_:
yield session_
34 changes: 17 additions & 17 deletions deeplearning/ml4pl/graphs/labelled/dataflow/BUILD
Original file line number Diff line number Diff line change
@@ -126,23 +126,23 @@ py_binary(
# deps = [":make_data_flow_analysis_dataset"],
# )

py_test(
name = "make_data_flow_analysis_dataset_test",
srcs = ["make_data_flow_analysis_dataset_test.py"],
shard_count = 8,
deps = [
":make_data_flow_analysis_dataset",
"//deeplearning/ml4pl/graphs/labelled:graph_tuple_database",
"//deeplearning/ml4pl/graphs/unlabelled:unlabelled_graph_database",
"//deeplearning/ml4pl/testing:random_programl_generator",
"//deeplearning/ml4pl/testing:random_unlabelled_graph_database_generator",
"//deeplearning/ml4pl/testing:testing_databases",
"//labm8/py:app",
"//labm8/py:progress",
"//labm8/py:test",
"//third_party/py/sqlalchemy",
],
)
#py_test(
# name = "make_data_flow_analysis_dataset_test",
# srcs = ["make_data_flow_analysis_dataset_test.py"],
# shard_count = 8,
# deps = [
# ":make_data_flow_analysis_dataset",
# "//deeplearning/ml4pl/graphs/labelled:graph_tuple_database",
# "//deeplearning/ml4pl/graphs/unlabelled:unlabelled_graph_database",
# "//deeplearning/ml4pl/testing:random_programl_generator",
# "//deeplearning/ml4pl/testing:random_unlabelled_graph_database_generator",
# "//deeplearning/ml4pl/testing:testing_databases",
# "//labm8/py:app",
# "//labm8/py:progress",
# "//labm8/py:test",
# "//third_party/py/sqlalchemy",
# ],
#)

py_binary(
name = "split",

0 comments on commit c898eb4

Please sign in to comment.