Esempio n. 1
0
    def setup_method(self, method):
        self.opts = Munch(
            redis_db=9,
            redis_port=7777,
            ssh=Munch(
                transport="ssh"
            ),
            build_groups={
                0: {
                    "spawn_playbook": "/spawn.yml",
                    "name": "base",
                    "archs": ["i386", "x86_64"]
                }
            }
        )

        self.executor = Executor(self.opts)
        self.rc = get_redis_connection(self.opts)
Esempio n. 2
0
    def setup_method(self, method):
        self.opts = Munch(
            redis_db=9,
            redis_port=7777,
            ssh=Munch(transport="ssh"),
            build_groups={0: {"spawn_playbook": "/spawn.yml", "name": "base", "archs": ["i386", "x86_64"]}},
        )

        self.executor = Executor(self.opts)
        self.rc = get_redis_connection(self.opts)
Esempio n. 3
0
class TestExecutor(object):

    def setup_method(self, method):
        self.opts = Munch(
            redis_db=9,
            redis_port=7777,
            ssh=Munch(
                transport="ssh"
            ),
            build_groups={
                0: {
                    "spawn_playbook": "/spawn.yml",
                    "name": "base",
                    "archs": ["i386", "x86_64"]
                }
            }
        )

        self.executor = Executor(self.opts)
        self.rc = get_redis_connection(self.opts)

    def teardown_method(self, method):
        keys = self.rc.keys("*")
        if keys:
            self.rc.delete(*keys)

    def test_recycle(self, mc_time):
        self.executor.last_recycle = 0
        mc_time.time.return_value = int(1.1 * self.executor.recycle_period)
        p1 = mock.MagicMock()
        p2 = mock.MagicMock()
        self.executor.child_processes.extend([p1, p2])
        p1.is_alive.return_value = True
        p2.is_alive.return_value = False

        self.executor.recycle()

        assert len(self.executor.child_processes) == 1
        assert self.executor.child_processes[0] == p1
        assert p2.join.called

        self.executor.last_recycle = self.executor.recycle_period
        p1.reset_mock()
        assert not p1.is_alive.called
        self.executor.recycle()
        assert not p1.is_alive.called
        self.executor.recycle(force=True)
        assert p1.is_alive.called

    def test_terminate(self):
        p1 = mock.MagicMock()
        p2 = mock.MagicMock()
        self.executor.child_processes.extend([p1, p2])

        self.executor.terminate()
        assert p1.terminate.called
        assert p2.terminate.called
        assert p1.join.called
        assert p2.join.called

    def test_children_number(self):
        mm = mock.MagicMock()
        self.executor.recycle = types.MethodType(mm, self.executor)
        assert self.executor.children_number == 0
        assert self.executor.recycle.called

        p1 = mock.MagicMock()
        p2 = mock.MagicMock()

        self.executor.child_processes.extend([p1, p2])
        assert self.executor.children_number == 2
Esempio n. 4
0
class TestExecutor(object):
    def setup_method(self, method):
        self.opts = Munch(
            redis_db=9,
            redis_port=7777,
            ssh=Munch(transport="ssh"),
            build_groups={0: {"spawn_playbook": "/spawn.yml", "name": "base", "archs": ["i386", "x86_64"]}},
        )

        self.executor = Executor(self.opts)
        self.rc = get_redis_connection(self.opts)

    def teardown_method(self, method):
        keys = self.rc.keys("*")
        if keys:
            self.rc.delete(*keys)

    def test_recycle(self, mc_time):
        self.executor.last_recycle = 0
        mc_time.time.return_value = int(1.1 * self.executor.recycle_period)
        p1 = mock.MagicMock()
        p2 = mock.MagicMock()
        self.executor.child_processes.extend([p1, p2])
        p1.is_alive.return_value = True
        p2.is_alive.return_value = False

        self.executor.recycle()

        assert len(self.executor.child_processes) == 1
        assert self.executor.child_processes[0] == p1
        assert p2.join.called

        self.executor.last_recycle = self.executor.recycle_period
        p1.reset_mock()
        assert not p1.is_alive.called
        self.executor.recycle()
        assert not p1.is_alive.called
        self.executor.recycle(force=True)
        assert p1.is_alive.called

    def test_terminate(self):
        p1 = mock.MagicMock()
        p2 = mock.MagicMock()
        self.executor.child_processes.extend([p1, p2])

        self.executor.terminate()
        assert p1.terminate.called
        assert p2.terminate.called
        assert p1.join.called
        assert p2.join.called

    def test_children_number(self):
        mm = mock.MagicMock()
        self.executor.recycle = types.MethodType(mm, self.executor)
        assert self.executor.children_number == 0
        assert self.executor.recycle.called

        p1 = mock.MagicMock()
        p2 = mock.MagicMock()

        self.executor.child_processes.extend([p1, p2])
        assert self.executor.children_number == 2