def test_enqueue_new_task(self, *_): c = self.client c.resource_server = Mock() c.keys_auth = Mock() c.keys_auth.key_id = str(uuid.uuid4()) c.task_server = TaskServer.__new__(TaskServer) c.task_server.client = c c.task_server.task_computer = Mock() c.task_server.task_manager = TaskManager.__new__(TaskManager) c.task_server.task_manager.add_new_task = Mock() c.task_server.task_manager.root_path = self.path task = Mock() task.header.max_price = 1 * 10**18 task.header.task_id = str(uuid.uuid4()) c.enqueue_new_task(task) task.get_resources.assert_called_with(None, resource_types["hashes"]) c.resource_server.resource_manager.build_client_options.assert_called_with( c.keys_auth.key_id) assert c.resource_server.add_task.called assert not c.task_server.task_manager.add_new_task.called deferred = Deferred() deferred.callback(True) c.resource_server.add_task.called = False c.resource_server.add_task.return_value = deferred c.enqueue_new_task(task) assert c.resource_server.add_task.called assert c.task_server.task_manager.add_new_task.called
def test_directories(self, *_): c = self.client self.assertIsInstance(c.get_datadir(), unicode) self.assertIsInstance(c.get_dir_manager(), Mock) c.task_server = TaskServer.__new__(TaskServer) c.task_server.client = self.client c.task_server.task_manager = TaskManager.__new__(TaskManager) c.task_server.task_manager.root_path = self.path c.task_server.task_computer = TaskComputer.__new__(TaskComputer) c.task_server.task_computer.dir_manager = DirManager(self.tempdir) c.task_server.task_computer.current_computations = [] c.resource_server = ResourceServer.__new__(ResourceServer) c.resource_server.dir_manager = c.task_server.task_computer.dir_manager self.assertIsInstance(c.get_dir_manager(), DirManager) res_dirs = c.get_res_dirs() self.assertIsInstance(res_dirs, dict) self.assertTrue(len(res_dirs) == 3) for key, value in res_dirs.iteritems(): self.assertIsInstance(key, unicode) self.assertIsInstance(value, unicode) self.assertTrue(self.path in value) res_dir_sizes = c.get_res_dirs_sizes() for key, value in res_dir_sizes.iteritems(): self.assertIsInstance(key, unicode) self.assertIsInstance(value, unicode) self.assertTrue(key in res_dirs)
def test_enqueue_new_task_dict(self, *_): t_dict = { 'resources': [ '/Users/user/Desktop/folder/texture.tex', '/Users/user/Desktop/folder/model.mesh', '/Users/user/Desktop/folder/stylized_levi.blend' ], 'name': 'Golem Task 17:41:45 GMT+0200 (CEST)', 'type': 'blender', 'timeout': '09:25:00', 'subtask_count': '6', 'subtask_timeout': '4:10:00', 'bid': '0.000032', 'options': { 'resolution': [1920, 1080], 'frames': '1-10', 'format': 'EXR', 'output_path': '/Users/user/Desktop/', 'compositing': True, } } c = self.client c.resource_server = Mock() c.keys_auth = Mock() c.keys_auth.key_id = str(uuid.uuid4()) c.task_server = TaskServer.__new__(TaskServer) c.task_server.client = c c.task_server.task_computer = Mock() c.task_server.task_manager = TaskManager('node_name', Mock(), c.keys_auth) c.task_server.task_manager.add_new_task = Mock() c.task_server.task_manager.root_path = self.path task = c.enqueue_new_task(t_dict) assert isinstance(task, Task) assert task.header.task_id c.resource_server.resource_manager.build_client_options\ .assert_called_with(c.keys_auth.key_id) assert c.resource_server.add_task.called assert not c.task_server.task_manager.add_new_task.called
def setUp(self): TempDirFixture.setUp(self) self.task_id = str(uuid.uuid4()) self.datadir_1 = os.path.join(self.path, 'node_1') self.datadir_2 = os.path.join(self.path, 'node_2') self.dir_manager_1 = DirManager(self.datadir_1) self.dir_manager_2 = DirManager(self.datadir_2) self.resource_manager_1 = self._resource_manager_class( self.dir_manager_1) self.resource_manager_2 = self._resource_manager_class( self.dir_manager_2) self.client_1 = Client(datadir=self.datadir_1, connect_to_known_hosts=False, use_docker_machine_manager=False, use_monitor=False) self.client_2 = Client(datadir=self.datadir_2, connect_to_known_hosts=False, use_docker_machine_manager=False, use_monitor=False) self.client_1.start = self.client_2.start = Mock() self.resource_server_1 = BaseResourceServer(self.resource_manager_1, self.dir_manager_1, Mock(), self.client_1) self.resource_server_2 = BaseResourceServer(self.resource_manager_2, self.dir_manager_2, Mock(), self.client_2) self.resource_server_1.client.resource_server = self.resource_server_1 self.resource_server_2.client.resource_server = self.resource_server_2 task_server_1 = TaskServer.__new__(TaskServer, Mock(), Mock(), Mock(), self.client_1) task_server_2 = TaskServer.__new__(TaskServer, Mock(), Mock(), Mock(), self.client_2) task_server_1.client = self.client_1 task_server_2.client = self.client_2 task_server_1.keys_auth = self.client_1.keys_auth task_server_2.keys_auth = self.client_2.keys_auth task_server_1.sync_network = task_server_2.sync_network = Mock() task_server_1.start_accepting = task_server_2.start_accepting = Mock() task_server_1.task_computer = task_server_2.task_computer = Mock() self.client_1.task_server = task_server_1 self.client_2.task_server = task_server_2 self.task_session_1 = TaskSession(Mock()) self.task_session_2 = TaskSession(Mock()) self.task_session_1.task_server = task_server_1 self.task_session_2.task_server = task_server_2 self.task_session_1.task_id = self.task_session_2.task_id = self.task_id self.resource_dir_1 = self.resource_manager_1.storage.get_dir( self.task_id) self.resource_dir_2 = self.resource_manager_2.storage.get_dir( self.task_id) client_options = self.resource_manager_1.build_client_options( task_server_1.get_key_id()) self.resources_relative, self.resources = self._create_resources( self.resource_dir_1) self.resource_manager_1._add_task(self.resources, self.task_id, client_options=client_options)