def test_trailing_slash(self): archive_dir = self.makedirs('archive') + os.sep runner = InlineMRJobRunner() archive_path = runner._dir_archive_path(archive_dir) self.assertEqual(os.path.basename(archive_path), 'archive.tar.gz')
def test_doesnt_actually_create_archive(self): archive_dir = self.makedirs('archive') runner = InlineMRJobRunner() archive_path = runner._dir_archive_path(archive_dir) self.assertFalse(os.path.exists(archive_path))
def test_same_dir_twice(self): archive_dir = self.makedirs('archive') runner = InlineMRJobRunner() archive_path_1 = runner._dir_archive_path(archive_dir) archive_path_2 = runner._dir_archive_path(archive_dir) self.assertEqual(os.path.basename(archive_path_1), 'archive.tar.gz') self.assertEqual(archive_path_1, archive_path_2)
def test_dirs_with_same_name(self): foo_archive = self.makedirs(os.path.join('foo', 'archive')) bar_archive = self.makedirs(os.path.join('bar', 'archive')) runner = InlineMRJobRunner() foo_archive_path = runner._dir_archive_path(foo_archive) bar_archive_path = runner._dir_archive_path(bar_archive) self.assertEqual(os.path.basename(foo_archive_path), 'archive.tar.gz') self.assertNotEqual(foo_archive_path, bar_archive_path)
def test_empty_dir(self): runner = InlineMRJobRunner() empty_dir = self.makedirs('empty') tar_gz_path = runner._dir_archive_path(empty_dir) self.assertEqual(os.path.basename(tar_gz_path), 'empty.tar.gz') runner._create_dir_archive(empty_dir) with tarfile.open(tar_gz_path, 'r:gz') as tar_gz: self.assertEqual(sorted(tar_gz.getnames()), [])
def test_only_create_archive_once(self): runner = InlineMRJobRunner() tar_gz_path = runner._dir_archive_path(self._to_archive) runner._create_dir_archive(self._to_archive) mtime_1 = os.stat(tar_gz_path).st_mtime sleep(1) runner._create_dir_archive(self._to_archive) mtime_2 = os.stat(tar_gz_path).st_mtime self.assertEqual(mtime_1, mtime_2)
def test_archive(self): runner = InlineMRJobRunner() tar_gz_path = runner._dir_archive_path(self._to_archive) self.assertEqual(os.path.basename(tar_gz_path), 'archive.tar.gz') runner._create_dir_archive(self._to_archive) tar_gz = tarfile.open(tar_gz_path, 'r:gz') try: self.assertEqual(sorted(tar_gz.getnames()), [os.path.join('bar', 'baz'), 'foo']) finally: tar_gz.close()
def test_uri(self): # we don't check whether URIs exist or are directories runner = InlineMRJobRunner() archive_path = runner._dir_archive_path('s3://bucket/stuff') self.assertEqual(os.path.basename(archive_path), 'stuff.tar.gz')