Пример #1
0
  def test_fetch_buildbot_data_failure(self):
    try:
      fetched_urls = []

      def fake_fetch_json(url):
        fetched_urls.append(url)

        if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit':
          return None

        if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.gpu':
          return {
              'builders': {
                  'Win GPU': None, 'Win Empty': None,
              }
          }

        if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.fyi':
          return {  # pragma: no cover
              'builders': {
                  'Mac FYI': None,
              }
          }

        # Somehow only hitting one side of this if?
        if (url == 'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20Empty&master=chromium.gpu&num_builds=1'
            or url == 'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20GPU&master=chromium.gpu&num_builds=1'):         # pragma: no cover

          return {
              'builds': [
                  {'steps': []},
              ],
          }

        logging.error('Cannot fetch fake url: %s' % url)  # pragma: no cover

      old_fetch_json = buildershandler.fetch_json
      buildershandler.fetch_json = fake_fetch_json

      masters = [
          {'name': 'ChromiumGPU', 'url_name': 'chromium.gpu'},
          {'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit'},
          {'name': 'ChromiumFYI', 'url_name': 'chromium.fyi'},
          # Check that masters are de-duped.
          {'name': 'ChromiumFYI', 'url_name': 'chromium.fyi'},
      ]

      expected_fetched_urls = [
          'http://chrome-build-extract.appspot.com/get_master/chromium.webkit',
          'http://chrome-build-extract.appspot.com/get_master/chromium.gpu',
          'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20GPU&master=chromium.gpu&num_builds=1',
          'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20Empty&master=chromium.gpu&num_builds=1',
      ]
      with self.assertRaises(buildershandler.FetchBuildersException):
        # Somehow not hitting all branches here?
        buildershandler.fetch_buildbot_data([m['url_name'] for m in masters])  # pragma: no cover
      self.assertEqual(set(expected_fetched_urls), set(fetched_urls))

    finally:
      buildershandler.fetch_json = old_fetch_json
Пример #2
0
  def test_fetch_buildbot_data(self):
    try:
      fetched_urls = []

      def fake_fetch_json(url):
        fetched_urls.append(url)

        if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit':
          return {
              'builders': {
                  'WebKit Win': None, 'WebKit Linux': None, 'WebKit Mac': None,
                  'WebKit Empty': None,
              }
          }

        if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Linux&master=chromium.webkit&num_builds=1':
          return {
              'builds': [
                  {'steps': [{'name': 'foo_tests_only'},
                             {'name': 'webkit_tests'},
                             {'name': 'browser_tests'},
                             {'name': 'mini_installer_test'},
                             {'name': 'archive_test_results'},
                             {'name': 'duplicate_builders_test'},
                             {'name': 'duplicate_builders_test'},
                             {'name': 'compile'},
                             {'name': 'Upload to test-results [swarming_gtest_tests]'}
                            ]
                  },
              ],
          }

        if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Win&master=chromium.webkit&num_builds=1':
          return {
              'builds': [
                  {'steps': [{'name': 'foo_tests_ignore'}, {'name': 'webkit_tests'}, {
                      'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]},
              ],
          }

        if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Mac&master=chromium.webkit&num_builds=1':
          return {
              'builds': [
                  {'steps': [{'name': 'foo_tests_perf'}, {'name': 'browser_tests'}, {
                      'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]},
              ],
          }

        if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Empty&master=chromium.webkit&num_builds=1':
          return {'builds': []}

        logging.error('Cannot fetch fake url: %s' % url)  # pragma: no cover

      old_fetch_json = buildershandler.fetch_json
      buildershandler.fetch_json = fake_fetch_json

      masters = [
          {'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit'},
      ]

      buildbot_data = buildershandler.fetch_buildbot_data(
          [m['url_name'] for m in masters])

      expected_fetched_urls = [
          'http://chrome-build-extract.appspot.com/get_master/chromium.webkit',
          'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Win&master=chromium.webkit&num_builds=1',
          'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Mac&master=chromium.webkit&num_builds=1',
          'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Empty&master=chromium.webkit&num_builds=1',
          'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Linux&master=chromium.webkit&num_builds=1',
      ]
      self.assertEqual(set(fetched_urls), set(expected_fetched_urls))

      expected_masters = {
          'masters': [{
              'tests': {
                  'browser_tests': {'builders': ['WebKit Linux', 'WebKit Mac']},
                  'mini_installer_test': {'builders': ['WebKit Linux', 'WebKit Mac', 'WebKit Win']},
                  'webkit_tests': {'builders': ['WebKit Linux', 'WebKit Win']},
                  'swarming_gtest_tests': {'builders': ['WebKit Linux']},
                  'duplicate_builders_test': {'builders': ['WebKit Linux']}},
              'name': 'ChromiumWebkit',
              'url_name': 'chromium.webkit',
              'groups': ['@ToT Chromium', '@ToT Blink'],
          }],
          "no_upload_test_types": buildershandler.TEST_STEPS_THAT_DO_NOT_UPLOAD_YET,
      }
      expected_json = buildershandler.dump_json(expected_masters)

      self.assertEqual(buildbot_data, expected_json)
    finally:
      buildershandler.fetch_json = old_fetch_json
Пример #3
0
    def test_fetch_buildbot_data(self):
        try:
            fetched_urls = []

            def fake_fetch_json(url):
                fetched_urls.append(url)

                if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit':
                    return {
                        'builders': {
                            'WebKit Win': None,
                            'WebKit Linux': None,
                            'WebKit Mac': None,
                            'WebKit Empty': None,
                        }
                    }

                if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Linux&master=chromium.webkit&num_builds=1':
                    return {
                        'builds': [
                            {
                                'steps': [{
                                    'name': 'foo_tests_only'
                                }, {
                                    'name': 'webkit_tests'
                                }, {
                                    'name': 'browser_tests'
                                }, {
                                    'name': 'mini_installer_test'
                                }, {
                                    'name': 'archive_test_results'
                                }, {
                                    'name': 'compile'
                                }]
                            },
                        ],
                    }

                if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Win&master=chromium.webkit&num_builds=1':
                    return {
                        'builds': [
                            {
                                'steps': [{
                                    'name': 'foo_tests_ignore'
                                }, {
                                    'name': 'webkit_tests'
                                }, {
                                    'name': 'mini_installer_test'
                                }, {
                                    'name': 'archive_test_results'
                                }, {
                                    'name': 'compile'
                                }]
                            },
                        ],
                    }

                if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Mac&master=chromium.webkit&num_builds=1':
                    return {
                        'builds': [
                            {
                                'steps': [{
                                    'name': 'foo_tests_perf'
                                }, {
                                    'name': 'browser_tests'
                                }, {
                                    'name': 'mini_installer_test'
                                }, {
                                    'name': 'archive_test_results'
                                }, {
                                    'name': 'compile'
                                }]
                            },
                        ],
                    }

                if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Empty&master=chromium.webkit&num_builds=1':
                    return {'builds': []}

                logging.error('Cannot fetch fake url: %s' %
                              url)  # pragma: no cover

            old_fetch_json = buildershandler.fetch_json
            buildershandler.fetch_json = fake_fetch_json

            masters = [
                {
                    'name': 'ChromiumWebkit',
                    'url_name': 'chromium.webkit'
                },
            ]

            buildbot_data = buildershandler.fetch_buildbot_data(
                [m['url_name'] for m in masters])

            expected_fetched_urls = [
                'http://chrome-build-extract.appspot.com/get_master/chromium.webkit',
                'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Win&master=chromium.webkit&num_builds=1',
                'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Mac&master=chromium.webkit&num_builds=1',
                'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Empty&master=chromium.webkit&num_builds=1',
                'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Linux&master=chromium.webkit&num_builds=1',
            ]
            self.assertEqual(set(fetched_urls), set(expected_fetched_urls))

            expected_masters = {
                'masters': [{
                    'tests': {
                        'browser_tests': {
                            'builders': ['WebKit Linux', 'WebKit Mac']
                        },
                        'mini_installer_test': {
                            'builders':
                            ['WebKit Linux', 'WebKit Mac', 'WebKit Win']
                        },
                        'layout-tests': {
                            'builders': ['WebKit Linux', 'WebKit Win']
                        }
                    },
                    'name': 'ChromiumWebkit',
                    'url_name': 'chromium.webkit',
                    'groups': ['@ToT Chromium', '@ToT Blink'],
                }],
                "no_upload_test_types":
                buildershandler.TEST_STEPS_THAT_DO_NOT_UPLOAD_YET,
            }
            expected_json = buildershandler.dump_json(expected_masters)

            self.assertEqual(buildbot_data, expected_json)
        finally:
            buildershandler.fetch_json = old_fetch_json
Пример #4
0
    def test_fetch_buildbot_data_failure(self):
        try:
            fetched_urls = []

            def fake_fetch_json(url):
                fetched_urls.append(url)

                if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit':
                    return None

                if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.gpu':
                    return {
                        'builders': {
                            'Win GPU': None,
                            'Win Empty': None,
                        }
                    }

                if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.fyi':
                    return {  # pragma: no cover
                        'builders': {
                            'Mac FYI': None,
                        }
                    }

                # Somehow only hitting one side of this if?
                if (url ==
                        'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20Empty&master=chromium.gpu&num_builds=1'
                        or url ==
                        'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20GPU&master=chromium.gpu&num_builds=1'
                    ):  # pragma: no cover

                    return {
                        'builds': [
                            {
                                'steps': []
                            },
                        ],
                    }

                logging.error('Cannot fetch fake url: %s' %
                              url)  # pragma: no cover

            old_fetch_json = buildershandler.fetch_json
            buildershandler.fetch_json = fake_fetch_json

            masters = [
                {
                    'name': 'ChromiumGPU',
                    'url_name': 'chromium.gpu'
                },
                {
                    'name': 'ChromiumWebkit',
                    'url_name': 'chromium.webkit'
                },
                {
                    'name': 'ChromiumFYI',
                    'url_name': 'chromium.fyi'
                },
            ]

            expected_fetched_urls = [
                'http://chrome-build-extract.appspot.com/get_master/chromium.webkit',
                'http://chrome-build-extract.appspot.com/get_master/chromium.gpu',
                'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20GPU&master=chromium.gpu&num_builds=1',
                'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20Empty&master=chromium.gpu&num_builds=1',
            ]
            with self.assertRaises(buildershandler.FetchBuildersException):
                # Somehow not hitting all branches here?
                buildershandler.fetch_buildbot_data(
                    [m['url_name'] for m in masters])  # pragma: no cover
            self.assertEqual(set(expected_fetched_urls), set(fetched_urls))

        finally:
            buildershandler.fetch_json = old_fetch_json