Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/_templates/11conf.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/_build/22conf.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/_static/conf.py')
object_summary.put(Body=b'test data')
s3_path = S3Path('/test-bucket/docs')
assert sorted(s3_path.iterdir()) == [
S3Path('/test-bucket/docs/Makefile'),
S3Path('/test-bucket/docs/_build'),
S3Path('/test-bucket/docs/_static'),
S3Path('/test-bucket/docs/_templates'),
S3Path('/test-bucket/docs/conf.py'),
S3Path('/test-bucket/docs/index.rst'),
S3Path('/test-bucket/docs/make.bat'),
]
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'setup.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'test_pathlib.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/conf.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'build/lib/pathlib.py')
object_summary.put(Body=b'test data')
assert not S3Path('/test-bucket/fake.test').is_dir()
assert not S3Path('/test-bucket/fake/').is_dir()
assert S3Path('/test-bucket/directory').is_dir()
assert not S3Path('/test-bucket/directory/Test.test').is_dir()
assert not S3Path('/test-bucket/pathlib.py').is_dir()
assert not S3Path('/test-bucket/docs/conf.py').is_dir()
assert S3Path('/test-bucket/docs/').is_dir()
assert S3Path('/test-bucket/build/').is_dir()
assert S3Path('/test-bucket/build/lib').is_dir()
assert not S3Path('/test-bucket/build/lib/pathlib.py').is_dir()
def test_unlink(s3_mock):
s3 = boto3.resource('s3')
s3.create_bucket(Bucket='test-bucket')
object_summary = s3.ObjectSummary('test-bucket', 'temp_key')
object_summary.put(Body=b'test data')
path = S3Path('/test-bucket/temp_key')
subdir_key = S3Path('/test-bucket/fake_folder/some_key')
subdir_key.write_text("some text")
assert path.exists() is True
assert subdir_key.exists() is True
path.unlink()
assert path.exists() is False
with pytest.raises(FileNotFoundError):
S3Path("/test-bucket/fake_subfolder/fake_subkey").unlink()
with pytest.raises(IsADirectoryError):
S3Path("/test-bucket/fake_folder").unlink()
with pytest.raises(IsADirectoryError):
S3Path("/fake-bucket/").unlink()
def test_exists(s3_mock):
path = S3Path('./fake-key')
with pytest.raises(ValueError):
path.exists()
path = S3Path('/fake-bucket/fake-key')
with pytest.raises(ClientError):
path.exists()
s3 = boto3.resource('s3')
s3.create_bucket(Bucket='test-bucket')
object_summary = s3.ObjectSummary('test-bucket', 'directory/Test.test')
object_summary.put(Body=b'test data')
assert not S3Path('/test-bucket/Test.test').exists()
path = S3Path('/test-bucket/directory/Test.test')
assert path.exists()
for parent in path.parents:
assert parent.exists()
def test_resolve():
path = S3Path('/fake-bucket/fake-key')
with pytest.raises(NotImplementedError):
path.resolve()
object_summary.put(Body=b'test data')
s3.create_bucket(Bucket='target-bucket')
S3Path('/test-bucket/docs/conf.py').rename('/test-bucket/docs/conf1.py')
assert not S3Path('/test-bucket/docs/conf.py').exists()
assert S3Path('/test-bucket/docs/conf1.py').is_file()
path = S3Path('/test-bucket/docs/')
path.rename(S3Path('/target-bucket') / S3Path('folder'))
assert not path.exists()
assert S3Path('/target-bucket/folder/conf1.py').is_file()
assert S3Path('/target-bucket/folder/make.bat').is_file()
assert S3Path('/target-bucket/folder/index.rst').is_file()
assert S3Path('/target-bucket/folder/Makefile').is_file()
assert S3Path('/target-bucket/folder/_templates/11conf.py').is_file()
assert S3Path('/target-bucket/folder/_build/22conf.py').is_file()
assert S3Path('/target-bucket/folder/_static/conf.py').is_file()
object_summary = s3.ObjectSummary('test-bucket', 'test_pathlib.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/conf.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'build/lib/pathlib.py')
object_summary.put(Body=b'test data')
assert not S3Path('/test-bucket/fake.test').is_dir()
assert not S3Path('/test-bucket/fake/').is_dir()
assert S3Path('/test-bucket/directory').is_dir()
assert not S3Path('/test-bucket/directory/Test.test').is_dir()
assert not S3Path('/test-bucket/pathlib.py').is_dir()
assert not S3Path('/test-bucket/docs/conf.py').is_dir()
assert S3Path('/test-bucket/docs/').is_dir()
assert S3Path('/test-bucket/build/').is_dir()
assert S3Path('/test-bucket/build/lib').is_dir()
assert not S3Path('/test-bucket/build/lib/pathlib.py').is_dir()
def test_glob(s3_mock):
s3 = boto3.resource('s3')
s3.create_bucket(Bucket='test-bucket')
object_summary = s3.ObjectSummary('test-bucket', 'directory/Test.test')
object_summary.put(Body=b'test data')
assert list(S3Path('/test-bucket/').glob('*.test')) == []
assert list(S3Path('/test-bucket/directory/').glob('*.test')) == [S3Path('/test-bucket/directory/Test.test')]
assert list(S3Path('/test-bucket/').glob('**/*.test')) == [S3Path('/test-bucket/directory/Test.test')]
object_summary = s3.ObjectSummary('test-bucket', 'pathlib.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'setup.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'test_pathlib.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/conf.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'build/lib/pathlib.py')
object_summary.put(Body=b'test data')
assert sorted(S3Path.from_uri('s3://test-bucket/').glob('*.py')) == [
S3Path('/test-bucket/pathlib.py'),
S3Path('/test-bucket/setup.py'),
S3Path('/test-bucket/test_pathlib.py')]
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/conf.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'build/lib/pathlib.py')
object_summary.put(Body=b'test data')
assert not S3Path('/test-bucket/fake.test').is_file()
assert not S3Path('/test-bucket/fake/').is_file()
assert not S3Path('/test-bucket/directory').is_file()
assert S3Path('/test-bucket/directory/Test.test').is_file()
assert S3Path('/test-bucket/pathlib.py').is_file()
assert S3Path('/test-bucket/docs/conf.py').is_file()
assert not S3Path('/test-bucket/docs/').is_file()
assert not S3Path('/test-bucket/build/').is_file()
assert not S3Path('/test-bucket/build/lib').is_file()
assert S3Path('/test-bucket/build/lib/pathlib.py').is_file()
object_summary = s3.ObjectSummary('test-bucket', 'setup.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'test_pathlib.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'docs/conf.py')
object_summary.put(Body=b'test data')
object_summary = s3.ObjectSummary('test-bucket', 'build/lib/pathlib.py')
object_summary.put(Body=b'test data')
assert sorted(S3Path.from_uri('s3://test-bucket/').glob('*.py')) == [
S3Path('/test-bucket/pathlib.py'),
S3Path('/test-bucket/setup.py'),
S3Path('/test-bucket/test_pathlib.py')]
assert sorted(S3Path.from_uri('s3://test-bucket/').glob('*/*.py')) == [S3Path('/test-bucket/docs/conf.py')]
assert sorted(S3Path.from_uri('s3://test-bucket/').glob('**/*.py')) == [
S3Path('/test-bucket/build/lib/pathlib.py'),
S3Path('/test-bucket/docs/conf.py'),
S3Path('/test-bucket/pathlib.py'),
S3Path('/test-bucket/setup.py'),
S3Path('/test-bucket/test_pathlib.py')]
assert sorted(S3Path.from_uri('s3://test-bucket/').glob('*cs')) == [
S3Path('/test-bucket/docs/'),
]