def test_filecoll_upload(self, mock_isup, mock_upload, mock_api): """Test upload""" _callback = mock.Mock() resp = mock.create_autospec(Response) resp.success = False resp.result = RestCallException(None, "Boom", None) mock_isup.return_value = [] mock_upload.return_value = (False, "f", "Error!") mock_isup.called = False col = FileCollection(mock_api) failed = col.upload() self.assertTrue(mock_isup.called) self.assertFalse(mock_upload.called) self.assertEqual(failed, []) mock_isup.called = False failed = col.upload(force=True) self.assertFalse(mock_isup.called) self.assertFalse(mock_upload.called) self.assertEqual(failed, []) col._collection = [1, 2, 3, 4] failed = col.upload(force=True) mock_upload.assert_any_call(1, callback=None, block=4096) self.assertEqual(mock_upload.call_count, 4) self.assertEqual(failed, [("f", "Error!"), ("f", "Error!"), ("f", "Error!"), ("f", "Error!")]) mock_upload.call_count = 0 resp.success = True mock_upload.return_value = (True, "f", "All good!") failed = col.upload(force=True, threads=None, callback=_callback, block=1) mock_upload.assert_any_call(1, callback=_callback, block=1) self.assertEqual(mock_upload.call_count, 4) self.assertEqual(failed, [])
def test_filecoll_upload_thread(self, mock_pik, mock_api): """Test upload""" resp = mock.create_autospec(Response) resp.success = False resp.result = RestCallException(None, "Boom", None) col = FileCollection(mock_api) col._api = None failed = col.upload(force=True, threads=1) self.assertFalse(mock_pik.called) self.assertEqual(failed, []) col._collection = [1, 2, 3, 4] failed = col.upload(force=True, threads=1) self.assertEqual(mock_pik.call_count, 1) self.assertEqual(failed, [(1, "'int' object has no attribute 'upload'"), (2, "'int' object has no attribute 'upload'"), (3, "'int' object has no attribute 'upload'"), (4, "'int' object has no attribute 'upload'")]) mock_pik.call_count = 0 col._collection = [UFile()] failed = col.upload(force=True, threads=1) self.assertEqual(mock_pik.call_count, 1) self.assertEqual(len(failed), 1) self.assertIsInstance(failed[0], tuple) mock_pik.call_count = 0 col._collection = [UFile(arg_a=True)] failed = col.upload(force=True, threads=1) self.assertEqual(mock_pik.call_count, 1) self.assertEqual(failed, []) mock_pik.call_count = 0 col._collection = [UFile(arg_a=True)] failed = col.upload(force=True, threads=3) self.assertEqual(mock_pik.call_count, 1) self.assertEqual(failed, []) mock_pik.call_count = 0 col._collection = [UFile() for a in range(15)] failed = col.upload(force=True, threads=3) self.assertEqual(mock_pik.call_count, 5) self.assertEqual(len(failed), 15) mock_pik.call_count = 0 col._collection = [UFile(arg_a=True) for a in range(20)] failed = col.upload(force=True, threads=20) self.assertEqual(mock_pik.call_count, 2) self.assertEqual(failed, [])