Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-9026

ValueProviderTests test failures

Details

    Description

      It seems that there's an ordering issue with these tests, where they expect RuntimeValueProvider.runtime_options to be None, but it has already been initialized by another test.

      13:49:31  ______ ValueProviderTests.test_runtime_value_provider_positional_argument ______
      13:49:31  [gw1] linux -- Python 3.6.8 /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit/src/sdks/python/test-suites/tox/py36/build/srcs/sdks/python/target/.tox-py36-gcp-pytest/py36-gcp-pytest/bin/python
      13:49:31  
      13:49:31  self = <apache_beam.options.value_provider_test.ValueProviderTests testMethod=test_runtime_value_provider_positional_argument>
      13:49:31  
      13:49:31      def test_runtime_value_provider_positional_argument(self):
      13:49:31        class UserDefinedOptions(PipelineOptions):
      13:49:31          @classmethod
      13:49:31          def _add_argparse_args(cls, parser):
      13:49:31            parser.add_value_provider_argument(
      13:49:31                'vpt_vp_arg4',
      13:49:31                help='This positional argument is a value provider')
      13:49:31        options = UserDefinedOptions([])
      13:49:31        self.assertTrue(isinstance(options.vpt_vp_arg4, RuntimeValueProvider))
      13:49:31  >     self.assertFalse(options.vpt_vp_arg4.is_accessible())
      13:49:31  E     AssertionError: True is not false
      13:49:31  
      13:49:31  apache_beam/options/value_provider_test.py:85: AssertionError
      13:49:31  __________________ ValueProviderTests.test_set_runtime_option __________________
      13:49:31  [gw1] linux -- Python 3.6.8 /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit/src/sdks/python/test-suites/tox/py36/build/srcs/sdks/python/target/.tox-py36-gcp-pytest/py36-gcp-pytest/bin/python
      13:49:31  
      13:49:31  self = <apache_beam.options.value_provider_test.ValueProviderTests testMethod=test_set_runtime_option>
      13:49:31  
      13:49:31      def test_set_runtime_option(self):
      13:49:31        # define ValueProvider options, with and without default values
      13:49:31        class UserDefinedOptions1(PipelineOptions):
      13:49:31          @classmethod
      13:49:31          def _add_argparse_args(cls, parser):
      13:49:31            parser.add_value_provider_argument(
      13:49:31                '--vpt_vp_arg6',
      13:49:31                help='This keyword argument is a value provider')   # set at runtime
      13:49:31      
      13:49:31            parser.add_value_provider_argument(         # not set, had default int
      13:49:31                '-v', '--vpt_vp_arg7',                      # with short form
      13:49:31                default=123,
      13:49:31                type=int)
      13:49:31      
      13:49:31            parser.add_value_provider_argument(         # not set, had default str
      13:49:31                '--vpt_vp-arg8',                            # with dash in name
      13:49:31                default='123',
      13:49:31                type=str)
      13:49:31      
      13:49:31            parser.add_value_provider_argument(         # not set and no default
      13:49:31                '--vpt_vp_arg9',
      13:49:31                type=float)
      13:49:31      
      13:49:31            parser.add_value_provider_argument(         # positional argument set
      13:49:31                'vpt_vp_arg10',                         # default & runtime ignored
      13:49:31                help='This positional argument is a value provider',
      13:49:31                type=float,
      13:49:31                default=5.4)
      13:49:31      
      13:49:31        # provide values at graph-construction time
      13:49:31        # (options not provided here become of the type RuntimeValueProvider)
      13:49:31        options = UserDefinedOptions1(['1.2'])
      13:49:31  >     self.assertFalse(options.vpt_vp_arg6.is_accessible())
      13:49:31  E     AssertionError: True is not false
      13:49:31  
      13:49:31  apache_beam/options/value_provider_test.py:135: AssertionError
      

      https://builds.apache.org/job/beam_PreCommit_Python_Commit/10566/timestamps/?time=HH:mm:ss&timeZone=GMT-8&appendLog&locale=en_US

      Attachments

        Activity

          People

            udim Udi Meiri
            udim Udi Meiri
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 2h
                2h