class TestWithFakeRemoteAgent(TestRemoteJobManager):
    def setUp(self):
        self.agent = FakeRemoteAgent(self._get_port(), self.handle_job_func,
                                     self.update_image_aliases_func,
                                     self.get_task_directory_hashes_func,
                                     self.update_task_directory_func)
        TestJobManager.setUp(self)

        wait = 0
        while self.job_manager.number_agents_available() != 1 and wait < 3:
            time.sleep(30)
            wait += 1
        assert self.job_manager.number_agents_available() == 1

    def tearDown(self):
        self.agent.close()
        TestJobManager.tearDown(self)

    def handle_job_func(self, job_id, course_id, task_id, inputdata, debug,
                        callback_status):
        return {"result": "success", "grade": 100.0}

    def update_image_aliases_func(self, image_aliases):
        pass

    def get_task_directory_hashes_func(self):
        return {}

    def update_task_directory_func(self, remote_tar_file, to_delete):
        pass
class TestWithFakeRemoteAgent(TestRemoteJobManager):
    def setUp(self):
        self.agent = FakeRemoteAgent(self._get_port(),
                                     self.handle_job_func,
                                     self.update_image_aliases_func,
                                     self.get_task_directory_hashes_func,
                                     self.update_task_directory_func)
        TestJobManager.setUp(self)

        wait = 0
        while self.job_manager.number_agents_available() != 1 and wait < 3:
            time.sleep(30)
            wait += 1
        assert self.job_manager.number_agents_available() == 1

    def tearDown(self):
        self.agent.close()
        TestJobManager.tearDown(self)

    def handle_job_func(self, job_id, course_id, task_id, inputdata, debug, callback_status):
        return {"result": "success", "grade": 100.0}

    def update_image_aliases_func(self, image_aliases):
        pass

    def get_task_directory_hashes_func(self):
        return {}

    def update_task_directory_func(self, remote_tar_file, to_delete):
        pass
    def setUp(self):
        self.agent = FakeRemoteAgent(self._get_port(), self.handle_job_func,
                                     self.update_image_aliases_func,
                                     self.get_task_directory_hashes_func,
                                     self.update_task_directory_func)
        TestJobManager.setUp(self)

        wait = 0
        while self.job_manager.number_agents_available() != 1 and wait < 3:
            time.sleep(30)
            wait += 1
        assert self.job_manager.number_agents_available() == 1
    def setUp(self):
        self.agent = FakeRemoteAgent(self._get_port(),
                                     self.handle_job_func,
                                     self.update_image_aliases_func,
                                     self.get_task_directory_hashes_func,
                                     self.update_task_directory_func)
        TestJobManager.setUp(self)

        wait = 0
        while self.job_manager.number_agents_available() != 1 and wait < 3:
            time.sleep(30)
            wait += 1
        assert self.job_manager.number_agents_available() == 1