def test_dataset_download(self): with testing.mock_kaggle_api(): with testing.tmp_dir() as tmp_dir: out_path = kaggle.download_kaggle_data('user/dataset', tmp_dir) self.assertEqual(out_path, os.path.join(tmp_dir, 'user_dataset')) with tf.io.gfile.GFile(os.path.join(out_path, 'output.txt')) as f: self.assertEqual('user/dataset', f.read())
def test_competition_download(self): with testing.mock_kaggle_api(): with testing.tmp_dir() as tmp_dir: out_path = kaggle.download_kaggle_data('digit-recognizer', tmp_dir) self.assertEqual(out_path, os.path.join(tmp_dir, 'digit-recognizer')) with tf.io.gfile.GFile(os.path.join(out_path, 'output.txt')) as f: self.assertEqual('digit-recognizer', f.read())
def test_competition_download_error(self): with testing.mock_kaggle_api(err_msg="Some error"): with self.assertLogs("install the kaggle API", level="error"): downloader = kaggle.KaggleCompetitionDownloader( "digit-recognizer") with self.assertRaises(subprocess.CalledProcessError): _ = downloader.competition_files
def test_competition_download_404(self): with testing.mock_kaggle_api(err_msg="404 - Not found"): with self.assertLogs("spelled the competition name correctly", level="error"): downloader = kaggle.KaggleCompetitionDownloader( "digit-recognizer") with self.assertRaises(subprocess.CalledProcessError): _ = downloader.competition_files
def test_kaggle_api(self): fname = 'a.csv' with testing.mock_kaggle_api(filenames=[fname, 'b.txt']): promise = self.downloader.download( 'kaggle://some-competition/a.csv', self.tmp_dir) _, dl_size = promise.get() self.assertEqual(dl_size, len(fname)) with tf.io.gfile.GFile(os.path.join(self.tmp_dir, fname)) as f: self.assertEqual(fname, f.read())
def test_competition_download(self): filenames = ["a", "b"] with testing.mock_kaggle_api(filenames): downloader = kaggle.KaggleCompetitionDownloader("digit-recognizer") self.assertEqual(downloader.competition_files, ["a", "b"]) with testing.tmp_dir() as tmp_dir: for fname in downloader.competition_files: out_path = downloader.download_file(fname, tmp_dir) self.assertEqual(out_path, os.path.join(tmp_dir, fname)) with tf.io.gfile.GFile(out_path) as f: self.assertEqual(fname, f.read())
def test_kaggle_api(self): fname = 'a.csv' with testing.mock_kaggle_api(filenames=[fname, 'b.txt']): # Testing Competition Downloader promise = self.downloader.download( 'kaggle://competition/some-competition/a.csv', self.tmp_dir) url_info = promise.get() self.assertEqual(url_info.size, len(fname)) with tf.io.gfile.GFile(os.path.join(self.tmp_dir, fname)) as f: self.assertEqual(fname, f.read()) # Testing Dataset Downloader promise = self.downloader.download( 'kaggle://dataset/some-author/some-dataset/a.csv', self.tmp_dir) url_info = promise.get() self.assertEqual(url_info.size, len(fname)) with tf.io.gfile.GFile(os.path.join(self.tmp_dir, fname)) as f: self.assertEqual(fname, f.read())
def test_competition_download_404(self): with testing.mock_kaggle_api(err_msg='404 - Not found'): with testing.tmp_dir() as tmp_dir: with self.assertRaisesRegex( ValueError, 'Please ensure you have spelled the name'): kaggle.download_kaggle_data('digit-recognize', tmp_dir)