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)