You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Tibor Kiss (JIRA)" <ji...@apache.org> on 2017/04/02 06:34:41 UTC
[jira] [Updated] (BEAM-1680) Uber-JIRA: Extend Python-SDK's unit
test coverage
[ https://issues.apache.org/jira/browse/BEAM-1680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tibor Kiss updated BEAM-1680:
-----------------------------
Description:
Some components of the Python-SDK has low coverage rate.
As of now ([ea33e33|https://github.com/apache/beam/tree/ea33e33]) the test coverage looks as follows (excluding autocomplete_test.py):
{code}
Ran 1050 tests in 145.653s
OK (skipped=14)
py27gcp runtests: commands[5] | coverage report
Name Stmts Miss Cover
------------------------------------------------------------------------------------------------------
apache_beam/__init__.py 12 1 92%
apache_beam/coders/__init__.py 2 0 100%
apache_beam/coders/coder_impl.py 414 23 94%
apache_beam/coders/coders.py 392 68 83%
apache_beam/coders/coders_test.py 54 3 94%
apache_beam/coders/coders_test_common.py 179 3 98%
apache_beam/coders/observable.py 10 0 100%
apache_beam/coders/observable_test.py 28 2 93%
apache_beam/coders/proto2_coder_test_messages_pb2.py 51 0 100%
apache_beam/coders/slow_coders_test.py 15 3 80%
apache_beam/coders/slow_stream.py 105 6 94%
apache_beam/coders/standard_coders_test.py 72 15 79%
apache_beam/coders/stream_test.py 127 14 89%
apache_beam/coders/typecoders.py 69 6 91%
apache_beam/error.py 7 0 100%
apache_beam/internal/__init__.py 0 0 100%
apache_beam/internal/gcp/__init__.py 0 0 100%
apache_beam/internal/gcp/auth.py 75 39 48%
apache_beam/internal/gcp/auth_test.py 17 2 88%
apache_beam/internal/gcp/json_value.py 64 8 88%
apache_beam/internal/gcp/json_value_test.py 49 3 94%
apache_beam/internal/module_test.py 23 0 100%
apache_beam/internal/pickler.py 96 10 90%
apache_beam/internal/pickler_test.py 30 1 97%
apache_beam/internal/util.py 30 0 100%
apache_beam/internal/util_test.py 32 1 97%
apache_beam/io/__init__.py 16 2 88%
apache_beam/io/avroio.py 139 14 90%
apache_beam/io/avroio_test.py 200 17 92%
apache_beam/io/concat_source.py 134 10 93%
apache_beam/io/concat_source_test.py 132 8 94%
apache_beam/io/filebasedsource.py 112 3 97%
apache_beam/io/filebasedsource_test.py 478 4 99%
apache_beam/io/fileio.py 188 55 71%
apache_beam/io/fileio_test.py 154 2 99%
apache_beam/io/filesystem.py 184 23 88%
apache_beam/io/filesystems_util.py 7 0 100%
apache_beam/io/gcp/__init__.py 0 0 100%
apache_beam/io/gcp/bigquery.py 418 29 93%
apache_beam/io/gcp/bigquery_test.py 434 11 97%
apache_beam/io/gcp/datastore/__init__.py 0 0 100%
apache_beam/io/gcp/datastore/v1/__init__.py 0 0 100%
apache_beam/io/gcp/datastore/v1/datastoreio.py 170 33 81%
apache_beam/io/gcp/datastore/v1/datastoreio_test.py 146 5 97%
apache_beam/io/gcp/datastore/v1/fake_datastore.py 38 2 95%
apache_beam/io/gcp/datastore/v1/helper.py 126 8 94%
apache_beam/io/gcp/datastore/v1/helper_test.py 175 4 98%
apache_beam/io/gcp/datastore/v1/query_splitter.py 102 7 93%
apache_beam/io/gcp/datastore/v1/query_splitter_test.py 127 3 98%
apache_beam/io/gcp/gcsfilesystem.py 109 11 90%
apache_beam/io/gcp/gcsfilesystem_test.py 129 2 98%
apache_beam/io/gcp/gcsio.py 413 46 89%
apache_beam/io/gcp/gcsio_test.py 478 5 99%
apache_beam/io/gcp/internal/__init__.py 0 0 100%
apache_beam/io/gcp/internal/clients/__init__.py 0 0 100%
apache_beam/io/gcp/internal/clients/bigquery/__init__.py 9 2 78%
apache_beam/io/gcp/internal/clients/bigquery/bigquery_v2_client.py 116 65 44%
apache_beam/io/gcp/internal/clients/bigquery/bigquery_v2_messages.py 459 0 100%
apache_beam/io/gcp/internal/clients/storage/__init__.py 9 2 78%
apache_beam/io/gcp/internal/clients/storage/storage_v1_client.py 165 71 57%
apache_beam/io/gcp/internal/clients/storage/storage_v1_messages.py 507 0 100%
apache_beam/io/gcp/pubsub.py 27 4 85%
apache_beam/io/gcp/pubsub_test.py 28 2 93%
apache_beam/io/gcp/tests/__init__.py 0 0 100%
apache_beam/io/gcp/tests/bigquery_matcher.py 47 7 85%
apache_beam/io/gcp/tests/bigquery_matcher_test.py 57 4 93%
apache_beam/io/iobase.py 151 27 82%
apache_beam/io/localfilesystem.py 102 2 98%
apache_beam/io/localfilesystem_test.py 127 8 94%
apache_beam/io/range_trackers.py 265 22 92%
apache_beam/io/range_trackers_test.py 346 4 99%
apache_beam/io/source_test_utils.py 215 25 88%
apache_beam/io/source_test_utils_test.py 64 3 95%
apache_beam/io/sources_test.py 71 17 76%
apache_beam/io/textio.py 151 13 91%
apache_beam/io/textio_test.py 436 4 99%
apache_beam/io/tfrecordio.py 87 4 95%
apache_beam/io/tfrecordio_test.py 229 29 87%
apache_beam/metrics/__init__.py 1 0 100%
apache_beam/metrics/cells.py 129 21 84%
apache_beam/metrics/cells_test.py 82 1 99%
apache_beam/metrics/execution.py 87 2 98%
apache_beam/metrics/execution_test.py 79 1 99%
apache_beam/metrics/metric.py 96 6 94%
apache_beam/metrics/metric_test.py 83 1 99%
apache_beam/metrics/metricbase.py 21 3 86%
apache_beam/pipeline.py 241 18 93%
apache_beam/pipeline_test.py 293 24 92%
apache_beam/pvalue.py 146 12 92%
apache_beam/pvalue_test.py 11 1 91%
apache_beam/runners/__init__.py 8 0 100%
apache_beam/runners/api/__init__.py 0 0 100%
apache_beam/runners/api/beam_runner_api_pb2.py 370 0 100%
apache_beam/runners/common.py 237 35 85%
apache_beam/runners/dataflow/__init__.py 0 0 100%
apache_beam/runners/dataflow/dataflow_metrics.py 67 10 85%
apache_beam/runners/dataflow/dataflow_metrics_test.py 53 1 98%
apache_beam/runners/dataflow/dataflow_runner.py 327 137 58%
apache_beam/runners/dataflow/dataflow_runner_test.py 88 4 95%
apache_beam/runners/dataflow/internal/__init__.py 0 0 100%
apache_beam/runners/dataflow/internal/apiclient.py 351 134 62%
apache_beam/runners/dataflow/internal/apiclient_test.py 56 5 91%
apache_beam/runners/dataflow/internal/clients/__init__.py 0 0 100%
apache_beam/runners/dataflow/internal/clients/dataflow/__init__.py 9 2 78%
apache_beam/runners/dataflow/internal/clients/dataflow/dataflow_v1b3_client.py 148 40 73%
apache_beam/runners/dataflow/internal/clients/dataflow/dataflow_v1b3_messages.py 1043 0 100%
apache_beam/runners/dataflow/internal/clients/dataflow/message_matchers.py 62 13 79%
apache_beam/runners/dataflow/internal/clients/dataflow/message_matchers_test.py 36 3 92%
apache_beam/runners/dataflow/internal/dependency.py 226 69 69%
apache_beam/runners/dataflow/internal/dependency_test.py 249 13 95%
apache_beam/runners/dataflow/internal/names.py 54 0 100%
apache_beam/runners/dataflow/native_io/__init__.py 0 0 100%
apache_beam/runners/dataflow/native_io/iobase.py 95 46 52%
apache_beam/runners/dataflow/template_runner_test.py 37 3 92%
apache_beam/runners/dataflow/test_dataflow_runner.py 15 7 53%
apache_beam/runners/direct/__init__.py 2 0 100%
apache_beam/runners/direct/bundle_factory.py 75 5 93%
apache_beam/runners/direct/clock.py 17 6 65%
apache_beam/runners/direct/consumer_tracking_pipeline_visitor.py 25 0 100%
apache_beam/runners/direct/consumer_tracking_pipeline_visitor_test.py 68 6 91%
apache_beam/runners/direct/direct_metrics.py 55 0 100%
apache_beam/runners/direct/direct_metrics_test.py 60 1 98%
apache_beam/runners/direct/direct_runner.py 83 2 98%
apache_beam/runners/direct/evaluation_context.py 143 5 97%
apache_beam/runners/direct/executor.py 304 14 95%
apache_beam/runners/direct/helper_transforms.py 48 0 100%
apache_beam/runners/direct/transform_evaluator.py 246 29 88%
apache_beam/runners/direct/transform_result.py 26 0 100%
apache_beam/runners/direct/watermark_manager.py 129 2 98%
apache_beam/runners/pipeline_context.py 42 0 100%
apache_beam/runners/pipeline_context_test.py 20 1 95%
apache_beam/runners/runner.py 142 31 78%
apache_beam/runners/runner_test.py 54 1 98%
apache_beam/runners/test/__init__.py 5 2 60%
apache_beam/test_pipeline.py 46 0 100%
apache_beam/test_pipeline_test.py 53 4 92%
apache_beam/tests/__init__.py 0 0 100%
apache_beam/tests/pipeline_verifiers.py 60 6 90%
apache_beam/tests/pipeline_verifiers_test.py 74 5 93%
apache_beam/tests/test_utils.py 22 0 100%
apache_beam/transforms/__init__.py 6 0 100%
apache_beam/transforms/combiners.py 282 23 92%
apache_beam/transforms/combiners_test.py 186 1 99%
apache_beam/transforms/core.py 558 75 87%
apache_beam/transforms/cy_combiners.py 195 102 48%
apache_beam/transforms/display.py 118 11 91%
apache_beam/transforms/display_test.py 116 20 83%
apache_beam/transforms/ptransform.py 294 29 90%
apache_beam/transforms/ptransform_test.py 1040 19 98%
apache_beam/transforms/sideinputs.py 35 1 97%
apache_beam/transforms/sideinputs_test.py 161 2 99%
apache_beam/transforms/timeutil.py 57 13 77%
apache_beam/transforms/trigger.py 599 72 88%
apache_beam/transforms/trigger_test.py 249 97 61%
apache_beam/transforms/util.py 80 1 99%
apache_beam/transforms/util_test.py 23 1 96%
apache_beam/transforms/window.py 210 25 88%
apache_beam/transforms/window_test.py 132 1 99%
apache_beam/transforms/write_ptransform_test.py 73 2 97%
apache_beam/typehints/__init__.py 3 0 100%
apache_beam/typehints/decorators.py 170 9 95%
apache_beam/typehints/opcodes.py 157 20 87%
apache_beam/typehints/trivial_inference.py 262 38 85%
apache_beam/typehints/trivial_inference_test.py 71 8 89%
apache_beam/typehints/typecheck.py 96 1 99%
apache_beam/typehints/typed_pipeline_test.py 156 6 96%
apache_beam/typehints/typehints.py 401 38 91%
apache_beam/typehints/typehints_test.py 615 15 98%
apache_beam/utils/__init__.py 2 0 100%
apache_beam/utils/annotations.py 21 0 100%
apache_beam/utils/annotations_test.py 57 3 95%
apache_beam/utils/counters.py 58 31 47%
apache_beam/utils/path.py 6 0 100%
apache_beam/utils/path_test.py 26 1 96%
apache_beam/utils/pipeline_options.py 169 7 96%
apache_beam/utils/pipeline_options_test.py 79 3 96%
apache_beam/utils/pipeline_options_validator.py 94 1 99%
apache_beam/utils/pipeline_options_validator_test.py 141 4 97%
apache_beam/utils/processes.py 22 0 100%
apache_beam/utils/processes_test.py 29 1 97%
apache_beam/utils/proto_utils.py 19 0 100%
apache_beam/utils/retry.py 68 3 96%
apache_beam/utils/retry_test.py 109 4 96%
apache_beam/utils/test_stream.py 74 7 91%
apache_beam/utils/test_stream_test.py 22 1 95%
apache_beam/utils/timestamp.py 105 2 98%
apache_beam/utils/timestamp_test.py 103 1 99%
apache_beam/utils/urns.py 7 0 100%
apache_beam/utils/windowed_value.py 42 3 93%
apache_beam/utils/windowed_value_test.py 31 1 97%
apache_beam/version.py 2 0 100%
------------------------------------------------------------------------------------------------------
TOTAL 24460 2262 91%
{code}
CC: [~altay]
was:
Some components of the Python-SDK has low coverage rate.
As of now ([2c2424c|https://github.com/apache/beam/tree/2c2424c]) the test coverage looks as follows (excluding autocomplete_test.py):
{code}
Name Stmts Miss Cover
-----------------------------------------------------------------------------------------------------
apache_beam/__init__.py 10 1 90%
apache_beam/coders/__init__.py 2 0 100%
apache_beam/coders/coder_impl.py 414 23 94%
apache_beam/coders/coders.py 392 84 79%
apache_beam/coders/coders_test.py 54 3 94%
apache_beam/coders/coders_test_common.py 179 3 98%
apache_beam/coders/observable.py 10 0 100%
apache_beam/coders/observable_test.py 28 2 93%
apache_beam/coders/proto2_coder_test_messages_pb2.py 51 0 100%
apache_beam/coders/slow_coders_test.py 15 3 80%
apache_beam/coders/slow_stream.py 105 6 94%
apache_beam/coders/standard_coders_test.py 72 15 79%
apache_beam/coders/stream_test.py 127 14 89%
apache_beam/coders/typecoders.py 69 8 88%
apache_beam/error.py 7 0 100%
apache_beam/internal/__init__.py 0 0 100%
apache_beam/internal/gcp/__init__.py 0 0 100%
apache_beam/internal/gcp/auth.py 73 37 49%
apache_beam/internal/gcp/auth_test.py 17 2 88%
apache_beam/internal/gcp/json_value.py 64 54 16%
apache_beam/internal/gcp/json_value_test.py 49 22 55%
apache_beam/internal/module_test.py 23 0 100%
apache_beam/internal/pickler.py 96 10 90%
apache_beam/internal/pickler_test.py 30 1 97%
apache_beam/internal/util.py 30 0 100%
apache_beam/internal/util_test.py 32 1 97%
apache_beam/io/__init__.py 15 2 87%
apache_beam/io/avroio.py 138 14 90%
apache_beam/io/avroio_test.py 200 17 92%
apache_beam/io/concat_source.py 134 10 93%
apache_beam/io/concat_source_test.py 132 8 94%
apache_beam/io/filebasedsource.py 124 4 97%
apache_beam/io/filebasedsource_test.py 478 4 99%
apache_beam/io/fileio.py 409 68 83%
apache_beam/io/fileio_test.py 186 2 99%
apache_beam/io/gcp/__init__.py 0 0 100%
apache_beam/io/gcp/bigquery.py 416 327 21%
apache_beam/io/gcp/bigquery_test.py 434 341 21%
apache_beam/io/gcp/datastore/__init__.py 0 0 100%
apache_beam/io/gcp/datastore/v1/__init__.py 0 0 100%
apache_beam/io/gcp/datastore/v1/datastoreio.py 170 116 32%
apache_beam/io/gcp/datastore/v1/datastoreio_test.py 146 112 23%
apache_beam/io/gcp/datastore/v1/fake_datastore.py 38 28 26%
apache_beam/io/gcp/datastore/v1/helper.py 126 100 21%
apache_beam/io/gcp/datastore/v1/helper_test.py 175 139 21%
apache_beam/io/gcp/datastore/v1/query_splitter.py 102 85 17%
apache_beam/io/gcp/datastore/v1/query_splitter_test.py 127 100 21%
apache_beam/io/gcp/gcsio.py 414 402 3%
apache_beam/io/gcp/gcsio_test.py 478 403 16%
apache_beam/io/gcp/internal/__init__.py 0 0 100%
apache_beam/io/gcp/internal/clients/__init__.py 0 0 100%
apache_beam/io/gcp/internal/clients/bigquery/__init__.py 9 2 78%
apache_beam/io/gcp/internal/clients/storage/__init__.py 9 2 78%
apache_beam/io/gcp/pubsub.py 27 4 85%
apache_beam/io/gcp/pubsub_test.py 28 2 93%
apache_beam/io/gcp/tests/__init__.py 0 0 100%
apache_beam/io/gcp/tests/bigquery_matcher.py 47 30 36%
apache_beam/io/gcp/tests/bigquery_matcher_test.py 57 38 33%
apache_beam/io/iobase.py 151 30 80%
apache_beam/io/range_trackers.py 265 22 92%
apache_beam/io/range_trackers_test.py 346 4 99%
apache_beam/io/source_test_utils.py 215 25 88%
apache_beam/io/source_test_utils_test.py 64 3 95%
apache_beam/io/sources_test.py 71 17 76%
apache_beam/io/textio.py 150 13 91%
apache_beam/io/textio_test.py 436 4 99%
apache_beam/io/tfrecordio.py 86 4 95%
apache_beam/io/tfrecordio_test.py 220 29 87%
apache_beam/metrics/__init__.py 1 0 100%
apache_beam/metrics/cells.py 129 21 84%
apache_beam/metrics/cells_test.py 82 1 99%
apache_beam/metrics/execution.py 87 2 98%
apache_beam/metrics/execution_test.py 79 1 99%
apache_beam/metrics/metric.py 96 6 94%
apache_beam/metrics/metric_test.py 83 1 99%
apache_beam/metrics/metricbase.py 21 3 86%
apache_beam/pipeline.py 188 14 93%
apache_beam/pipeline_test.py 285 7 98%
apache_beam/pvalue.py 177 13 93%
apache_beam/pvalue_test.py 36 3 92%
apache_beam/runners/__init__.py 8 0 100%
apache_beam/runners/api/__init__.py 0 0 100%
apache_beam/runners/api/beam_runner_api_pb2.py 370 0 100%
apache_beam/runners/common.py 237 35 85%
apache_beam/runners/dataflow/__init__.py 0 0 100%
apache_beam/runners/dataflow/dataflow_metrics.py 49 4 92%
apache_beam/runners/dataflow/dataflow_metrics_test.py 42 1 98%
apache_beam/runners/dataflow/dataflow_runner.py 324 263 19%
apache_beam/runners/dataflow/dataflow_runner_test.py 88 59 33%
apache_beam/runners/dataflow/internal/__init__.py 0 0 100%
apache_beam/runners/dataflow/internal/apiclient.py 342 331 3%
apache_beam/runners/dataflow/internal/apiclient_test.py 50 31 38%
apache_beam/runners/dataflow/internal/clients/__init__.py 0 0 100%
apache_beam/runners/dataflow/internal/clients/dataflow/__init__.py 9 2 78%
apache_beam/runners/dataflow/internal/clients/dataflow/message_matchers.py 62 52 16%
apache_beam/runners/dataflow/internal/clients/dataflow/message_matchers_test.py 36 22 39%
apache_beam/runners/dataflow/internal/dependency.py 214 66 69%
apache_beam/runners/dataflow/internal/dependency_test.py 249 13 95%
apache_beam/runners/dataflow/internal/names.py 54 0 100%
apache_beam/runners/dataflow/native_io/__init__.py 0 0 100%
apache_beam/runners/dataflow/native_io/iobase.py 95 50 47%
apache_beam/runners/dataflow/template_runner_test.py 37 19 49%
apache_beam/runners/dataflow/test_dataflow_runner.py 15 8 47%
apache_beam/runners/direct/__init__.py 2 0 100%
apache_beam/runners/direct/bundle_factory.py 75 5 93%
apache_beam/runners/direct/clock.py 17 6 65%
apache_beam/runners/direct/consumer_tracking_pipeline_visitor.py 27 0 100%
apache_beam/runners/direct/consumer_tracking_pipeline_visitor_test.py 68 6 91%
apache_beam/runners/direct/direct_metrics.py 55 0 100%
apache_beam/runners/direct/direct_metrics_test.py 60 1 98%
apache_beam/runners/direct/direct_runner.py 83 2 98%
apache_beam/runners/direct/evaluation_context.py 134 6 96%
apache_beam/runners/direct/executor.py 304 14 95%
apache_beam/runners/direct/helper_transforms.py 48 0 100%
apache_beam/runners/direct/transform_evaluator.py 279 29 90%
apache_beam/runners/direct/transform_result.py 26 0 100%
apache_beam/runners/direct/watermark_manager.py 129 1 99%
apache_beam/runners/pipeline_context.py 42 0 100%
apache_beam/runners/pipeline_context_test.py 20 1 95%
apache_beam/runners/runner.py 142 42 70%
apache_beam/runners/runner_test.py 54 1 98%
apache_beam/runners/test/__init__.py 5 2 60%
apache_beam/test_pipeline.py 46 0 100%
apache_beam/test_pipeline_test.py 53 4 92%
apache_beam/tests/__init__.py 0 0 100%
apache_beam/tests/pipeline_verifiers.py 48 4 92%
apache_beam/tests/pipeline_verifiers_test.py 61 8 87%
apache_beam/tests/test_utils.py 22 0 100%
apache_beam/transforms/__init__.py 6 0 100%
apache_beam/transforms/combiners.py 282 23 92%
apache_beam/transforms/combiners_test.py 186 1 99%
apache_beam/transforms/core.py 558 75 87%
apache_beam/transforms/cy_combiners.py 195 102 48%
apache_beam/transforms/display.py 118 20 83%
apache_beam/transforms/display_test.py 108 20 81%
apache_beam/transforms/ptransform.py 294 30 90%
apache_beam/transforms/ptransform_test.py 1039 19 98%
apache_beam/transforms/sideinputs.py 93 2 98%
apache_beam/transforms/sideinputs_test.py 176 2 99%
apache_beam/transforms/timeutil.py 57 13 77%
apache_beam/transforms/trigger.py 599 72 88%
apache_beam/transforms/trigger_test.py 249 97 61%
apache_beam/transforms/util.py 75 5 93%
apache_beam/transforms/window.py 206 25 88%
apache_beam/transforms/window_test.py 127 3 98%
apache_beam/transforms/write_ptransform_test.py 73 2 97%
apache_beam/typehints/__init__.py 3 0 100%
apache_beam/typehints/decorators.py 170 9 95%
apache_beam/typehints/opcodes.py 157 20 87%
apache_beam/typehints/trivial_inference.py 262 37 86%
apache_beam/typehints/trivial_inference_test.py 71 8 89%
apache_beam/typehints/typecheck.py 96 1 99%
apache_beam/typehints/typed_pipeline_test.py 156 6 96%
apache_beam/typehints/typehints.py 401 38 91%
apache_beam/typehints/typehints_test.py 615 15 98%
apache_beam/utils/__init__.py 2 0 100%
apache_beam/utils/annotations.py 21 0 100%
apache_beam/utils/annotations_test.py 57 3 95%
apache_beam/utils/counters.py 58 31 47%
apache_beam/utils/path.py 6 0 100%
apache_beam/utils/path_test.py 26 1 96%
apache_beam/utils/pipeline_options.py 168 7 96%
apache_beam/utils/pipeline_options_test.py 79 3 96%
apache_beam/utils/pipeline_options_validator.py 94 1 99%
apache_beam/utils/pipeline_options_validator_test.py 141 4 97%
apache_beam/utils/processes.py 22 0 100%
apache_beam/utils/processes_test.py 29 1 97%
apache_beam/utils/proto_utils.py 19 0 100%
apache_beam/utils/retry.py 68 9 87%
apache_beam/utils/retry_test.py 109 8 93%
apache_beam/utils/timestamp.py 105 2 98%
apache_beam/utils/timestamp_test.py 103 1 99%
apache_beam/utils/urns.py 6 0 100%
apache_beam/utils/windowed_value.py 42 3 93%
apache_beam/utils/windowed_value_test.py 31 1 97%
apache_beam/version.py 22 17 23%
-----------------------------------------------------------------------------------------------------
TOTAL 21497 4697 78%
{code}
CC: [~altay]
> Uber-JIRA: Extend Python-SDK's unit test coverage
> -------------------------------------------------
>
> Key: BEAM-1680
> URL: https://issues.apache.org/jira/browse/BEAM-1680
> Project: Beam
> Issue Type: Improvement
> Components: sdk-py
> Reporter: Tibor Kiss
> Assignee: Tibor Kiss
> Priority: Minor
>
> Some components of the Python-SDK has low coverage rate.
> As of now ([ea33e33|https://github.com/apache/beam/tree/ea33e33]) the test coverage looks as follows (excluding autocomplete_test.py):
> {code}
> Ran 1050 tests in 145.653s
> OK (skipped=14)
> py27gcp runtests: commands[5] | coverage report
> Name Stmts Miss Cover
> ------------------------------------------------------------------------------------------------------
> apache_beam/__init__.py 12 1 92%
> apache_beam/coders/__init__.py 2 0 100%
> apache_beam/coders/coder_impl.py 414 23 94%
> apache_beam/coders/coders.py 392 68 83%
> apache_beam/coders/coders_test.py 54 3 94%
> apache_beam/coders/coders_test_common.py 179 3 98%
> apache_beam/coders/observable.py 10 0 100%
> apache_beam/coders/observable_test.py 28 2 93%
> apache_beam/coders/proto2_coder_test_messages_pb2.py 51 0 100%
> apache_beam/coders/slow_coders_test.py 15 3 80%
> apache_beam/coders/slow_stream.py 105 6 94%
> apache_beam/coders/standard_coders_test.py 72 15 79%
> apache_beam/coders/stream_test.py 127 14 89%
> apache_beam/coders/typecoders.py 69 6 91%
> apache_beam/error.py 7 0 100%
> apache_beam/internal/__init__.py 0 0 100%
> apache_beam/internal/gcp/__init__.py 0 0 100%
> apache_beam/internal/gcp/auth.py 75 39 48%
> apache_beam/internal/gcp/auth_test.py 17 2 88%
> apache_beam/internal/gcp/json_value.py 64 8 88%
> apache_beam/internal/gcp/json_value_test.py 49 3 94%
> apache_beam/internal/module_test.py 23 0 100%
> apache_beam/internal/pickler.py 96 10 90%
> apache_beam/internal/pickler_test.py 30 1 97%
> apache_beam/internal/util.py 30 0 100%
> apache_beam/internal/util_test.py 32 1 97%
> apache_beam/io/__init__.py 16 2 88%
> apache_beam/io/avroio.py 139 14 90%
> apache_beam/io/avroio_test.py 200 17 92%
> apache_beam/io/concat_source.py 134 10 93%
> apache_beam/io/concat_source_test.py 132 8 94%
> apache_beam/io/filebasedsource.py 112 3 97%
> apache_beam/io/filebasedsource_test.py 478 4 99%
> apache_beam/io/fileio.py 188 55 71%
> apache_beam/io/fileio_test.py 154 2 99%
> apache_beam/io/filesystem.py 184 23 88%
> apache_beam/io/filesystems_util.py 7 0 100%
> apache_beam/io/gcp/__init__.py 0 0 100%
> apache_beam/io/gcp/bigquery.py 418 29 93%
> apache_beam/io/gcp/bigquery_test.py 434 11 97%
> apache_beam/io/gcp/datastore/__init__.py 0 0 100%
> apache_beam/io/gcp/datastore/v1/__init__.py 0 0 100%
> apache_beam/io/gcp/datastore/v1/datastoreio.py 170 33 81%
> apache_beam/io/gcp/datastore/v1/datastoreio_test.py 146 5 97%
> apache_beam/io/gcp/datastore/v1/fake_datastore.py 38 2 95%
> apache_beam/io/gcp/datastore/v1/helper.py 126 8 94%
> apache_beam/io/gcp/datastore/v1/helper_test.py 175 4 98%
> apache_beam/io/gcp/datastore/v1/query_splitter.py 102 7 93%
> apache_beam/io/gcp/datastore/v1/query_splitter_test.py 127 3 98%
> apache_beam/io/gcp/gcsfilesystem.py 109 11 90%
> apache_beam/io/gcp/gcsfilesystem_test.py 129 2 98%
> apache_beam/io/gcp/gcsio.py 413 46 89%
> apache_beam/io/gcp/gcsio_test.py 478 5 99%
> apache_beam/io/gcp/internal/__init__.py 0 0 100%
> apache_beam/io/gcp/internal/clients/__init__.py 0 0 100%
> apache_beam/io/gcp/internal/clients/bigquery/__init__.py 9 2 78%
> apache_beam/io/gcp/internal/clients/bigquery/bigquery_v2_client.py 116 65 44%
> apache_beam/io/gcp/internal/clients/bigquery/bigquery_v2_messages.py 459 0 100%
> apache_beam/io/gcp/internal/clients/storage/__init__.py 9 2 78%
> apache_beam/io/gcp/internal/clients/storage/storage_v1_client.py 165 71 57%
> apache_beam/io/gcp/internal/clients/storage/storage_v1_messages.py 507 0 100%
> apache_beam/io/gcp/pubsub.py 27 4 85%
> apache_beam/io/gcp/pubsub_test.py 28 2 93%
> apache_beam/io/gcp/tests/__init__.py 0 0 100%
> apache_beam/io/gcp/tests/bigquery_matcher.py 47 7 85%
> apache_beam/io/gcp/tests/bigquery_matcher_test.py 57 4 93%
> apache_beam/io/iobase.py 151 27 82%
> apache_beam/io/localfilesystem.py 102 2 98%
> apache_beam/io/localfilesystem_test.py 127 8 94%
> apache_beam/io/range_trackers.py 265 22 92%
> apache_beam/io/range_trackers_test.py 346 4 99%
> apache_beam/io/source_test_utils.py 215 25 88%
> apache_beam/io/source_test_utils_test.py 64 3 95%
> apache_beam/io/sources_test.py 71 17 76%
> apache_beam/io/textio.py 151 13 91%
> apache_beam/io/textio_test.py 436 4 99%
> apache_beam/io/tfrecordio.py 87 4 95%
> apache_beam/io/tfrecordio_test.py 229 29 87%
> apache_beam/metrics/__init__.py 1 0 100%
> apache_beam/metrics/cells.py 129 21 84%
> apache_beam/metrics/cells_test.py 82 1 99%
> apache_beam/metrics/execution.py 87 2 98%
> apache_beam/metrics/execution_test.py 79 1 99%
> apache_beam/metrics/metric.py 96 6 94%
> apache_beam/metrics/metric_test.py 83 1 99%
> apache_beam/metrics/metricbase.py 21 3 86%
> apache_beam/pipeline.py 241 18 93%
> apache_beam/pipeline_test.py 293 24 92%
> apache_beam/pvalue.py 146 12 92%
> apache_beam/pvalue_test.py 11 1 91%
> apache_beam/runners/__init__.py 8 0 100%
> apache_beam/runners/api/__init__.py 0 0 100%
> apache_beam/runners/api/beam_runner_api_pb2.py 370 0 100%
> apache_beam/runners/common.py 237 35 85%
> apache_beam/runners/dataflow/__init__.py 0 0 100%
> apache_beam/runners/dataflow/dataflow_metrics.py 67 10 85%
> apache_beam/runners/dataflow/dataflow_metrics_test.py 53 1 98%
> apache_beam/runners/dataflow/dataflow_runner.py 327 137 58%
> apache_beam/runners/dataflow/dataflow_runner_test.py 88 4 95%
> apache_beam/runners/dataflow/internal/__init__.py 0 0 100%
> apache_beam/runners/dataflow/internal/apiclient.py 351 134 62%
> apache_beam/runners/dataflow/internal/apiclient_test.py 56 5 91%
> apache_beam/runners/dataflow/internal/clients/__init__.py 0 0 100%
> apache_beam/runners/dataflow/internal/clients/dataflow/__init__.py 9 2 78%
> apache_beam/runners/dataflow/internal/clients/dataflow/dataflow_v1b3_client.py 148 40 73%
> apache_beam/runners/dataflow/internal/clients/dataflow/dataflow_v1b3_messages.py 1043 0 100%
> apache_beam/runners/dataflow/internal/clients/dataflow/message_matchers.py 62 13 79%
> apache_beam/runners/dataflow/internal/clients/dataflow/message_matchers_test.py 36 3 92%
> apache_beam/runners/dataflow/internal/dependency.py 226 69 69%
> apache_beam/runners/dataflow/internal/dependency_test.py 249 13 95%
> apache_beam/runners/dataflow/internal/names.py 54 0 100%
> apache_beam/runners/dataflow/native_io/__init__.py 0 0 100%
> apache_beam/runners/dataflow/native_io/iobase.py 95 46 52%
> apache_beam/runners/dataflow/template_runner_test.py 37 3 92%
> apache_beam/runners/dataflow/test_dataflow_runner.py 15 7 53%
> apache_beam/runners/direct/__init__.py 2 0 100%
> apache_beam/runners/direct/bundle_factory.py 75 5 93%
> apache_beam/runners/direct/clock.py 17 6 65%
> apache_beam/runners/direct/consumer_tracking_pipeline_visitor.py 25 0 100%
> apache_beam/runners/direct/consumer_tracking_pipeline_visitor_test.py 68 6 91%
> apache_beam/runners/direct/direct_metrics.py 55 0 100%
> apache_beam/runners/direct/direct_metrics_test.py 60 1 98%
> apache_beam/runners/direct/direct_runner.py 83 2 98%
> apache_beam/runners/direct/evaluation_context.py 143 5 97%
> apache_beam/runners/direct/executor.py 304 14 95%
> apache_beam/runners/direct/helper_transforms.py 48 0 100%
> apache_beam/runners/direct/transform_evaluator.py 246 29 88%
> apache_beam/runners/direct/transform_result.py 26 0 100%
> apache_beam/runners/direct/watermark_manager.py 129 2 98%
> apache_beam/runners/pipeline_context.py 42 0 100%
> apache_beam/runners/pipeline_context_test.py 20 1 95%
> apache_beam/runners/runner.py 142 31 78%
> apache_beam/runners/runner_test.py 54 1 98%
> apache_beam/runners/test/__init__.py 5 2 60%
> apache_beam/test_pipeline.py 46 0 100%
> apache_beam/test_pipeline_test.py 53 4 92%
> apache_beam/tests/__init__.py 0 0 100%
> apache_beam/tests/pipeline_verifiers.py 60 6 90%
> apache_beam/tests/pipeline_verifiers_test.py 74 5 93%
> apache_beam/tests/test_utils.py 22 0 100%
> apache_beam/transforms/__init__.py 6 0 100%
> apache_beam/transforms/combiners.py 282 23 92%
> apache_beam/transforms/combiners_test.py 186 1 99%
> apache_beam/transforms/core.py 558 75 87%
> apache_beam/transforms/cy_combiners.py 195 102 48%
> apache_beam/transforms/display.py 118 11 91%
> apache_beam/transforms/display_test.py 116 20 83%
> apache_beam/transforms/ptransform.py 294 29 90%
> apache_beam/transforms/ptransform_test.py 1040 19 98%
> apache_beam/transforms/sideinputs.py 35 1 97%
> apache_beam/transforms/sideinputs_test.py 161 2 99%
> apache_beam/transforms/timeutil.py 57 13 77%
> apache_beam/transforms/trigger.py 599 72 88%
> apache_beam/transforms/trigger_test.py 249 97 61%
> apache_beam/transforms/util.py 80 1 99%
> apache_beam/transforms/util_test.py 23 1 96%
> apache_beam/transforms/window.py 210 25 88%
> apache_beam/transforms/window_test.py 132 1 99%
> apache_beam/transforms/write_ptransform_test.py 73 2 97%
> apache_beam/typehints/__init__.py 3 0 100%
> apache_beam/typehints/decorators.py 170 9 95%
> apache_beam/typehints/opcodes.py 157 20 87%
> apache_beam/typehints/trivial_inference.py 262 38 85%
> apache_beam/typehints/trivial_inference_test.py 71 8 89%
> apache_beam/typehints/typecheck.py 96 1 99%
> apache_beam/typehints/typed_pipeline_test.py 156 6 96%
> apache_beam/typehints/typehints.py 401 38 91%
> apache_beam/typehints/typehints_test.py 615 15 98%
> apache_beam/utils/__init__.py 2 0 100%
> apache_beam/utils/annotations.py 21 0 100%
> apache_beam/utils/annotations_test.py 57 3 95%
> apache_beam/utils/counters.py 58 31 47%
> apache_beam/utils/path.py 6 0 100%
> apache_beam/utils/path_test.py 26 1 96%
> apache_beam/utils/pipeline_options.py 169 7 96%
> apache_beam/utils/pipeline_options_test.py 79 3 96%
> apache_beam/utils/pipeline_options_validator.py 94 1 99%
> apache_beam/utils/pipeline_options_validator_test.py 141 4 97%
> apache_beam/utils/processes.py 22 0 100%
> apache_beam/utils/processes_test.py 29 1 97%
> apache_beam/utils/proto_utils.py 19 0 100%
> apache_beam/utils/retry.py 68 3 96%
> apache_beam/utils/retry_test.py 109 4 96%
> apache_beam/utils/test_stream.py 74 7 91%
> apache_beam/utils/test_stream_test.py 22 1 95%
> apache_beam/utils/timestamp.py 105 2 98%
> apache_beam/utils/timestamp_test.py 103 1 99%
> apache_beam/utils/urns.py 7 0 100%
> apache_beam/utils/windowed_value.py 42 3 93%
> apache_beam/utils/windowed_value_test.py 31 1 97%
> apache_beam/version.py 2 0 100%
> ------------------------------------------------------------------------------------------------------
> TOTAL 24460 2262 91%
> {code}
> CC: [~altay]
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)