async def test_discovering_fails(self): from stig.commands.cli import RenameCmd self.mock_get_relative_path_from_focused.return_value = None self.mock_select_torrents.side_effect = ValueError('No torrent given') info_cb, err_cb = MagicMock(), MagicMock() process = RenameCmd(['New Name'], info_handler=info_cb, error_handler=err_cb, loop=self.loop) await process.wait_async() self.assertEqual(process.success, False) info_cb.assert_not_called() err_cb.assert_called_once_with('rename: No torrent given') self.mock_get_relative_path_from_focused.assert_called_once_with(unique=False) self.mock_select_torrents.assert_called_once_with(None, allow_no_filter=False, discover_torrent=True) self.mock_srvapi.torrent.torrents.assert_not_called() self.mock_srvapi.torrent.rename.assert_not_called()
async def test_specifying_file(self): from stig.commands.cli import RenameCmd self.mock_select_torrents.return_value = 'mock filter' self.mock_srvapi.torrent.torrents.return_value = Response( success=True, torrents=(MockTorrent(id=1234, name='Some Torrent'),)) info_cb, err_cb = MagicMock(), MagicMock() process = RenameCmd(['id=1234/mock/path/to/file', 'file2'], info_handler=info_cb, error_handler=err_cb, loop=self.loop) await process.wait_async() self.assertEqual(process.success, True) info_cb.assert_not_called() err_cb.assert_not_called() self.mock_get_relative_path_from_focused.assert_not_called() self.mock_select_torrents.assert_called_once_with('id=1234', allow_no_filter=False, discover_torrent=True) self.mock_srvapi.torrent.torrents.assert_called_once_with('mock filter', keys=('id',)) self.mock_srvapi.torrent.rename.assert_called_once_with(1234, path='mock/path/to/file', new_name='file2')
async def test_renaming_multiple_torrents_fails(self): from stig.commands.cli import RenameCmd self.mock_select_torrents.return_value = 'mock filter' self.mock_srvapi.torrent.torrents.return_value = Response( success=True, torrents=(MockTorrent(id=1234, name='Some Torrent'), MockTorrent(id=1235, name='Some Torrent'))) info_cb, err_cb = MagicMock(), MagicMock() process = RenameCmd(['Some Torrent', 'Renamed Torrent'], info_handler=info_cb, error_handler=err_cb, loop=self.loop) await process.wait_async() self.assertEqual(process.success, False) info_cb.assert_not_called() err_cb.assert_called_once_with('rename: mock filter matches more than one torrent') self.mock_get_relative_path_from_focused.assert_not_called() self.mock_select_torrents.assert_called_once_with('Some Torrent', allow_no_filter=False, discover_torrent=True) self.mock_srvapi.torrent.torrents.assert_called_once_with('mock filter', keys=('id',)) self.mock_srvapi.torrent.rename.assert_not_called()
async def test_CLI_renaming_files_of_multiple_torrents_disabled_succeeds(self): from stig.commands.cli import RenameCmd self.mock_select_torrents.return_value = 'mock filter' self.mock_srvapi.torrent.torrents.return_value = Response( success=True, torrents=(MockTorrent(id=1235, name='Some Torrent'),)) info_cb, err_cb = MagicMock(), MagicMock() process = RenameCmd(['--unique', 'id=1235/path/to/file', 'file2'], info_handler=info_cb, error_handler=err_cb, loop=self.loop) await process.wait_async() self.assertEqual(process.success, True) info_cb.assert_not_called() err_cb.assert_not_called() self.mock_get_relative_path_from_focused.assert_not_called() self.mock_select_torrents.assert_called_once_with('id=1235', allow_no_filter=False, discover_torrent=True) self.mock_srvapi.torrent.torrents.assert_called_once_with('mock filter', keys=('id',)) self.assertEqual(self.mock_srvapi.torrent.rename.call_args_list, [call(1235, path='path/to/file', new_name='file2')])