Exemple #1
0
    def test_poll_server_sleep(self):
        slept = []
        self.mock(time, 'sleep', slept.append)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', self.fail)

        self.expected_requests([
            (
                'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
                {
                    'data': {},
                    'headers': {
                        'X-XSRF-Token-Request': '1'
                    }
                },
                {
                    'xsrf_token': 'token'
                },
            ),
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes,
                    'headers': {
                        'X-XSRF-Token': 'token'
                    },
                },
                {
                    'cmd': 'sleep',
                    'duration': 1.24,
                },
            ),
        ])
        self.assertFalse(bot_main.poll_server(self.bot))
        self.assertEqual([1.24], slept)
Exemple #2
0
  def test_poll_server_sleep(self):
    slept = []
    self.mock(time, 'sleep', slept.append)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
            {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}},
            {'xsrf_token': 'token'},
          ),
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'headers': {'X-XSRF-Token': 'token'},
            },
            {
              'cmd': 'sleep',
              'duration': 1.24,
            },
          ),
        ])
    self.assertFalse(bot_main.poll_server(self.bot))
    self.assertEqual([1.24], slept)
Exemple #3
0
    def test_poll_server_restart_load_test(self):
        os.environ['SWARMING_LOAD_TEST'] = '1'
        self.mock(time, 'sleep', self.fail)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', self.fail)
        self.mock(self.bot, 'restart', self.fail)

        self.expected_requests([
            (
                'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
                {
                    'data': {},
                    'headers': {
                        'X-XSRF-Token-Request': '1'
                    }
                },
                {
                    'xsrf_token': 'token'
                },
            ),
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes,
                    'headers': {
                        'X-XSRF-Token': 'token'
                    },
                },
                {
                    'cmd': 'restart',
                    'message': 'Please die now',
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot))
Exemple #4
0
  def test_poll_server_restart_load_test(self):
    os.environ['SWARMING_LOAD_TEST'] = '1'
    self.mock(time, 'sleep', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)
    self.mock(self.bot, 'restart', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
            {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}},
            {'xsrf_token': 'token'},
          ),
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'headers': {'X-XSRF-Token': 'token'},
            },
            {
              'cmd': 'restart',
              'message': 'Please die now',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot))
Exemple #5
0
    def test_poll_server_update(self):
        update = []
        self.mock(time, 'sleep', self.fail)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', lambda *args: update.append(args))

        self.expected_requests([
            (
                'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
                {
                    'data': {},
                    'headers': {
                        'X-XSRF-Token-Request': '1'
                    }
                },
                {
                    'xsrf_token': 'token'
                },
            ),
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes,
                    'headers': {
                        'X-XSRF-Token': 'token'
                    },
                },
                {
                    'cmd': 'update',
                    'version': '123',
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot))
        self.assertEqual([(self.bot, '123')], update)
Exemple #6
0
  def test_poll_server_restart_load_test(self):
    os.environ['SWARMING_LOAD_TEST'] = '1'
    bit = threading.Event()
    self.mock(bit, 'wait', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)
    self.mock(self.bot, 'restart', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'follow_redirects': False,
              'headers': {},
              'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC,
            },
            {
              'cmd': 'restart',
              'message': 'Please die now',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot, bit, 0))
Exemple #7
0
  def test_poll_server_run(self):
    manifest = []
    self.mock(time, 'sleep', self.fail)
    self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args))
    self.mock(bot_main, 'update_bot', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
            {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}},
            {'xsrf_token': 'token'},
          ),
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.bot._attributes,
              'headers': {'X-XSRF-Token': 'token'},
            },
            {
              'cmd': 'run',
              'manifest': {'foo': 'bar'},
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot))
    expected = [(self.bot, {'foo': 'bar'}, time.time())]
    self.assertEqual(expected, manifest)
Exemple #8
0
  def test_poll_server_run(self):
    manifest = []
    clean = []
    bit = threading.Event()
    self.mock(bit, 'wait', self.fail)
    self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args))
    self.mock(bot_main, 'clean_cache',
              lambda *args: clean.append(args))
    self.mock(bot_main, 'update_bot', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.bot._attributes,
              'follow_redirects': False,
              'headers': {},
              'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC,
            },
            {
              'cmd': 'run',
              'manifest': {'foo': 'bar'},
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot, bit, 0))
    expected = [(self.bot, {'foo': 'bar'}, time.time())]
    self.assertEqual(expected, manifest)
    expected = [(self.bot,)]
    self.assertEqual(expected, clean)
Exemple #9
0
  def test_poll_server_restart(self):
    restart = []
    bit = threading.Event()
    self.mock(bit, 'wait', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)
    self.mock(self.bot, 'restart', lambda *args: restart.append(args))

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'follow_redirects': False,
              'headers': {},
              'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC,
            },
            {
              'cmd': 'restart',
              'message': 'Please die now',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot, bit, 0))
    self.assertEqual([('Please die now',)], restart)
Exemple #10
0
  def test_poll_server_sleep_with_auth(self):
    slept = []
    bit = threading.Event()
    self.mock(bit, 'wait', slept.append)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)

    self.bot = self.make_bot(lambda: ({'A': 'a'}, time.time() + 3600))

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'follow_redirects': False,
              'headers': {'A': 'a'},
              'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC,
            },
            {
              'cmd': 'sleep',
              'duration': 1.24,
            },
          ),
        ])
    self.assertFalse(bot_main.poll_server(self.bot, bit, 0))
    self.assertEqual([1.24], slept)
Exemple #11
0
  def test_poll_server_sleep(self):
    slept = []
    bit = threading.Event()
    self.mock(bit, 'wait', slept.append)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)
    from config import bot_config
    called = []
    self.mock(bot_config, 'on_bot_idle', lambda _bot, _s: called.append(1))

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'follow_redirects': False,
              'headers': {},
              'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC,
            },
            {
              'cmd': 'sleep',
              'duration': 1.24,
            },
          ),
        ])
    self.assertFalse(bot_main.poll_server(self.bot, bit, 2))
    self.assertEqual([1.24], slept)
    self.assertEqual([1], called)
Exemple #12
0
  def test_poll_server_update(self):
    update = []
    self.mock(time, 'sleep', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', lambda *args: update.append(args))

    self.expected_requests(
        [
          (
            'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
            {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}},
            {'xsrf_token': 'token'},
          ),
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'headers': {'X-XSRF-Token': 'token'},
            },
            {
              'cmd': 'update',
              'version': '123',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot))
    self.assertEqual([(self.bot, '123')], update)
Exemple #13
0
    def test_poll_server_run(self):
        manifest = []
        bit = threading.Event()
        self.mock(bit, 'wait', self.fail)
        self.mock(bot_main, 'run_manifest',
                  lambda *args: manifest.append(args))
        self.mock(bot_main, 'update_bot', self.fail)

        self.expected_requests([
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.bot._attributes
                },
                {
                    'cmd': 'run',
                    'manifest': {
                        'foo': 'bar'
                    },
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot, bit))
        expected = [(self.bot, {'foo': 'bar'}, time.time())]
        self.assertEqual(expected, manifest)
Exemple #14
0
  def test_poll_server_restart(self):
    restart = []
    self.mock(time, 'sleep', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)
    self.mock(self.bot, 'restart', lambda *args: restart.append(args))

    self.expected_requests(
        [
          (
            'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
            {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}},
            {'xsrf_token': 'token'},
          ),
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
              'headers': {'X-XSRF-Token': 'token'},
            },
            {
              'cmd': 'restart',
              'message': 'Please die now',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot))
    self.assertEqual([('Please die now',)], restart)
  def test_poll_server_sleep(self):
    slept = []
    bit = threading.Event()
    self.mock(bit, 'wait', slept.append)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {'data': self.attributes},
            {
              'cmd': 'sleep',
              'duration': 1.24,
            },
          ),
        ])
    self.assertFalse(bot_main.poll_server(self.bot, bit))
    self.assertEqual([1.24], slept)
  def test_poll_server_update(self):
    update = []
    bit = threading.Event()
    self.mock(bit, 'wait', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', lambda *args: update.append(args))

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {'data': self.attributes},
            {
              'cmd': 'update',
              'version': '123',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot, bit))
    self.assertEqual([(self.bot, '123')], update)
Exemple #17
0
    def test_poll_server_update(self):
        update = []
        bit = threading.Event()
        self.mock(bit, 'wait', self.fail)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', lambda *args: update.append(args))

        self.expected_requests([
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes
                },
                {
                    'cmd': 'update',
                    'version': '123',
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot, bit))
        self.assertEqual([(self.bot, '123')], update)
Exemple #18
0
    def test_poll_server_restart_load_test(self):
        os.environ['SWARMING_LOAD_TEST'] = '1'
        bit = threading.Event()
        self.mock(bit, 'wait', self.fail)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', self.fail)
        self.mock(self.bot, 'restart', self.fail)

        self.expected_requests([
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes,
                },
                {
                    'cmd': 'restart',
                    'message': 'Please die now',
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot, bit))
  def test_poll_server_restart(self):
    restart = []
    bit = threading.Event()
    self.mock(bit, 'wait', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)
    self.mock(self.bot, 'restart', lambda *args: restart.append(args))

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {'data': self.attributes},
            {
              'cmd': 'restart',
              'message': 'Please die now',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot, bit))
    self.assertEqual([('Please die now',)], restart)
  def test_poll_server_run(self):
    manifest = []
    bit = threading.Event()
    self.mock(bit, 'wait', self.fail)
    self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args))
    self.mock(bot_main, 'update_bot', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {'data': self.bot._attributes},
            {
              'cmd': 'run',
              'manifest': {'foo': 'bar'},
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot, bit))
    expected = [(self.bot, {'foo': 'bar'}, time.time())]
    self.assertEqual(expected, manifest)
Exemple #21
0
    def test_poll_server_sleep(self):
        slept = []
        bit = threading.Event()
        self.mock(bit, 'wait', slept.append)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', self.fail)

        self.expected_requests([
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes
                },
                {
                    'cmd': 'sleep',
                    'duration': 1.24,
                },
            ),
        ])
        self.assertFalse(bot_main.poll_server(self.bot, bit))
        self.assertEqual([1.24], slept)
Exemple #22
0
    def test_poll_server_restart(self):
        restart = []
        bit = threading.Event()
        self.mock(bit, 'wait', self.fail)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', self.fail)
        self.mock(self.bot, 'restart', lambda *args: restart.append(args))

        self.expected_requests([
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes
                },
                {
                    'cmd': 'restart',
                    'message': 'Please die now',
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot, bit))
        self.assertEqual([('Please die now', )], restart)
Exemple #23
0
    def test_poll_server_run(self):
        manifest = []
        self.mock(time, 'sleep', self.fail)
        self.mock(bot_main, 'run_manifest',
                  lambda *args: manifest.append(args))
        self.mock(bot_main, 'update_bot', self.fail)

        self.expected_requests([
            (
                'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
                {
                    'data': {},
                    'headers': {
                        'X-XSRF-Token-Request': '1'
                    }
                },
                {
                    'xsrf_token': 'token'
                },
            ),
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.bot._attributes,
                    'headers': {
                        'X-XSRF-Token': 'token'
                    },
                },
                {
                    'cmd': 'run',
                    'manifest': {
                        'foo': 'bar'
                    },
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot))
        expected = [(self.bot, {'foo': 'bar'}, time.time())]
        self.assertEqual(expected, manifest)
  def test_poll_server_restart_load_test(self):
    os.environ['SWARMING_LOAD_TEST'] = '1'
    bit = threading.Event()
    self.mock(bit, 'wait', self.fail)
    self.mock(bot_main, 'run_manifest', self.fail)
    self.mock(bot_main, 'update_bot', self.fail)
    self.mock(self.bot, 'restart', self.fail)

    self.expected_requests(
        [
          (
            'https://localhost:1/swarming/api/v1/bot/poll',
            {
              'data': self.attributes,
            },
            {
              'cmd': 'restart',
              'message': 'Please die now',
            },
          ),
        ])
    self.assertTrue(bot_main.poll_server(self.bot, bit))
Exemple #25
0
    def test_poll_server_restart_load_test(self):
        os.environ["SWARMING_LOAD_TEST"] = "1"
        bit = threading.Event()
        self.mock(bit, "wait", self.fail)
        self.mock(bot_main, "run_manifest", self.fail)
        self.mock(bot_main, "update_bot", self.fail)
        self.mock(self.bot, "restart", self.fail)

        self.expected_requests(
            [
                (
                    "https://localhost:1/auth/api/v1/accounts/self/xsrf_token",
                    {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}},
                    {"xsrf_token": "token"},
                ),
                (
                    "https://localhost:1/swarming/api/v1/bot/poll",
                    {"data": self.attributes, "headers": {"X-XSRF-Token": "token"}},
                    {"cmd": "restart", "message": "Please die now"},
                ),
            ]
        )
        self.assertTrue(bot_main.poll_server(self.bot, bit))
Exemple #26
0
    def test_poll_server_update(self):
        update = []
        bit = threading.Event()
        self.mock(bit, "wait", self.fail)
        self.mock(bot_main, "run_manifest", self.fail)
        self.mock(bot_main, "update_bot", lambda *args: update.append(args))

        self.expected_requests(
            [
                (
                    "https://localhost:1/auth/api/v1/accounts/self/xsrf_token",
                    {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}},
                    {"xsrf_token": "token"},
                ),
                (
                    "https://localhost:1/swarming/api/v1/bot/poll",
                    {"data": self.attributes, "headers": {"X-XSRF-Token": "token"}},
                    {"cmd": "update", "version": "123"},
                ),
            ]
        )
        self.assertTrue(bot_main.poll_server(self.bot, bit))
        self.assertEqual([(self.bot, "123")], update)
Exemple #27
0
    def test_poll_server_sleep(self):
        slept = []
        bit = threading.Event()
        self.mock(bit, "wait", slept.append)
        self.mock(bot_main, "run_manifest", self.fail)
        self.mock(bot_main, "update_bot", self.fail)

        self.expected_requests(
            [
                (
                    "https://localhost:1/auth/api/v1/accounts/self/xsrf_token",
                    {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}},
                    {"xsrf_token": "token"},
                ),
                (
                    "https://localhost:1/swarming/api/v1/bot/poll",
                    {"data": self.attributes, "headers": {"X-XSRF-Token": "token"}},
                    {"cmd": "sleep", "duration": 1.24},
                ),
            ]
        )
        self.assertFalse(bot_main.poll_server(self.bot, bit))
        self.assertEqual([1.24], slept)
Exemple #28
0
    def test_poll_server_restart(self):
        restart = []
        bit = threading.Event()
        self.mock(bit, 'wait', self.fail)
        self.mock(bot_main, 'run_manifest', self.fail)
        self.mock(bot_main, 'update_bot', self.fail)
        self.mock(self.bot, 'restart', lambda *args: restart.append(args))

        self.expected_requests([
            (
                'https://localhost:1/auth/api/v1/accounts/self/xsrf_token',
                {
                    'data': {},
                    'headers': {
                        'X-XSRF-Token-Request': '1'
                    }
                },
                {
                    'xsrf_token': 'token'
                },
            ),
            (
                'https://localhost:1/swarming/api/v1/bot/poll',
                {
                    'data': self.attributes,
                    'headers': {
                        'X-XSRF-Token': 'token'
                    },
                },
                {
                    'cmd': 'restart',
                    'message': 'Please die now',
                },
            ),
        ])
        self.assertTrue(bot_main.poll_server(self.bot, bit))
        self.assertEqual([('Please die now', )], restart)
Exemple #29
0
    def test_poll_server_run(self):
        manifest = []
        bit = threading.Event()
        self.mock(bit, "wait", self.fail)
        self.mock(bot_main, "run_manifest", lambda *args: manifest.append(args))
        self.mock(bot_main, "update_bot", self.fail)

        self.expected_requests(
            [
                (
                    "https://localhost:1/auth/api/v1/accounts/self/xsrf_token",
                    {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}},
                    {"xsrf_token": "token"},
                ),
                (
                    "https://localhost:1/swarming/api/v1/bot/poll",
                    {"data": self.bot._attributes, "headers": {"X-XSRF-Token": "token"}},
                    {"cmd": "run", "manifest": {"foo": "bar"}},
                ),
            ]
        )
        self.assertTrue(bot_main.poll_server(self.bot, bit))
        expected = [(self.bot, {"foo": "bar"}, time.time())]
        self.assertEqual(expected, manifest)