Exemplo n.º 1
0
    def test_get_slave_raises_exception_on_invalid_arguments(
            self, get_slave_kwargs):
        master = ClusterMaster()
        master.connect_new_slave('raphael.turtles.gov', 10)

        with self.assertRaises(ValueError):
            master.get_slave(**get_slave_kwargs)
Exemplo n.º 2
0
    def test_updating_slave_to_nonexistent_state_should_raise_bad_request_error(self):
        master = ClusterMaster()
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, 10)
        slave = master.get_slave(slave_url=slave_url)

        with self.assertRaises(BadRequestError):
            master.handle_slave_state_update(slave, 'NONEXISTENT_STATE')
Exemplo n.º 3
0
    def test_updating_slave_to_nonexistent_state_should_raise_bad_request_error(
            self):
        master = ClusterMaster()
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, 10)
        slave = master.get_slave(slave_url=slave_url)

        with self.assertRaises(BadRequestError):
            master.handle_slave_state_update(slave, 'NONEXISTENT_STATE')
Exemplo n.º 4
0
    def test_updating_slave_to_disconnected_state_should_reset_slave_current_build_id(self):
        master = ClusterMaster()
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, num_executors=10)
        slave = master.get_slave(slave_url=slave_url)
        slave.current_build_id = 4

        master.handle_slave_state_update(slave, SlaveState.DISCONNECTED)

        self.assertIsNone(slave.current_build_id)
Exemplo n.º 5
0
    def test_updating_slave_to_disconnected_state_should_mark_slave_as_dead(self):
        master = ClusterMaster()
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, num_executors=10)
        slave = master.get_slave(slave_url=slave_url)
        self.assertTrue(slave.is_alive())

        master.handle_slave_state_update(slave, SlaveState.DISCONNECTED)

        self.assertFalse(slave.is_alive())
Exemplo n.º 6
0
    def test_updating_slave_to_setup_completed_state_should_tell_build_to_begin_subjob_execution(self):
        master = ClusterMaster()
        fake_build = MagicMock()
        master.get_build = MagicMock(return_value=fake_build)
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, 10)
        slave = master.get_slave(slave_url=slave_url)

        master.handle_slave_state_update(slave, SlaveState.SETUP_COMPLETED)

        fake_build.begin_subjob_executions_on_slave.assert_called_once_with(slave)
Exemplo n.º 7
0
    def test_updating_slave_to_disconnected_state_should_reset_slave_current_build_id(
            self):
        master = ClusterMaster()
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, num_executors=10)
        slave = master.get_slave(slave_url=slave_url)
        slave.current_build_id = 4

        master.handle_slave_state_update(slave, SlaveState.DISCONNECTED)

        self.assertIsNone(slave.current_build_id)
Exemplo n.º 8
0
    def test_updating_slave_to_disconnected_state_should_mark_slave_as_dead(
            self):
        master = ClusterMaster()
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, num_executors=10)
        slave = master.get_slave(slave_url=slave_url)
        self.assertTrue(slave.is_alive())

        master.handle_slave_state_update(slave, SlaveState.DISCONNECTED)

        self.assertFalse(slave.is_alive())
Exemplo n.º 9
0
    def test_updating_slave_to_setup_completed_state_should_tell_build_to_begin_subjob_execution(
            self):
        master = ClusterMaster()
        fake_build = MagicMock()
        master.get_build = MagicMock(return_value=fake_build)
        slave_url = 'raphael.turtles.gov'
        master.connect_new_slave(slave_url, 10)
        slave = master.get_slave(slave_url=slave_url)

        master.handle_slave_state_update(slave, SlaveState.SETUP_COMPLETED)

        fake_build.begin_subjob_executions_on_slave.assert_called_once_with(
            slave)
Exemplo n.º 10
0
    def test_get_slave_raises_exception_on_slave_not_found(self, get_slave_kwargs):
        master = ClusterMaster()
        master.connect_new_slave('raphael.turtles.gov', 10)
        master.connect_new_slave('leonardo.turtles.gov', 10)
        master.connect_new_slave('donatello.turtles.gov', 10)

        with self.assertRaises(ItemNotFoundError):
            master.get_slave(**get_slave_kwargs)
Exemplo n.º 11
0
    def test_get_slave_raises_exception_on_slave_not_found(
            self, get_slave_kwargs):
        master = ClusterMaster()
        master.connect_new_slave('raphael.turtles.gov', 10)
        master.connect_new_slave('leonardo.turtles.gov', 10)
        master.connect_new_slave('donatello.turtles.gov', 10)

        with self.assertRaises(ItemNotFoundError):
            master.get_slave(**get_slave_kwargs)
Exemplo n.º 12
0
    def test_get_slave_returns_expected_value_given_valid_arguments(self):
        master = ClusterMaster()
        master.connect_new_slave('raphael.turtles.gov', 10)
        master.connect_new_slave('leonardo.turtles.gov', 10)
        master.connect_new_slave('donatello.turtles.gov', 10)

        actual_slave_by_id = master.get_slave(slave_id=2)
        actual_slave_by_url = master.get_slave(slave_url='leonardo.turtles.gov')

        self.assertEqual(2, actual_slave_by_id.id, 'Retrieved slave should have the same id as requested.')
        self.assertEqual('leonardo.turtles.gov', actual_slave_by_url.url,
                         'Retrieved slave should have the same url as requested.')
Exemplo n.º 13
0
    def test_get_slave_returns_expected_value_given_valid_arguments(self):
        master = ClusterMaster()
        master.connect_new_slave('raphael.turtles.gov', 10)
        master.connect_new_slave('leonardo.turtles.gov', 10)
        master.connect_new_slave('donatello.turtles.gov', 10)

        actual_slave_by_id = master.get_slave(slave_id=2)
        actual_slave_by_url = master.get_slave(
            slave_url='leonardo.turtles.gov')

        self.assertEqual(
            2, actual_slave_by_id.id,
            'Retrieved slave should have the same id as requested.')
        self.assertEqual(
            'leonardo.turtles.gov', actual_slave_by_url.url,
            'Retrieved slave should have the same url as requested.')
Exemplo n.º 14
0
    def test_get_slave_raises_exception_on_invalid_arguments(self, get_slave_kwargs):
        master = ClusterMaster()
        master.connect_new_slave('raphael.turtles.gov', 10)

        with self.assertRaises(ValueError):
            master.get_slave(**get_slave_kwargs)