Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion conda/recipe/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ schema_version: 1

context:
name: mache
version: "3.4.0"
version: "3.4.1"

package:
name: ${{ name|lower }}
Expand Down
4 changes: 2 additions & 2 deletions mache/deploy/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -1013,7 +1013,7 @@ def _apply_deploy_permissions(
shared_base_path,
group,
show_progress=True,
group_writable=True,
group_writable=False,
other_readable=world_readable,
recursive=True,
)
Expand All @@ -1039,7 +1039,7 @@ def _apply_deploy_permissions(
update_permissions(
managed_prefix,
group,
group_writable=True,
group_writable=False,
other_readable=world_readable,
recursive=False,
)
Expand Down
2 changes: 1 addition & 1 deletion mache/version.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__version_info__ = (3, 4, 0)
__version_info__ = (3, 4, 1)
__version__ = '.'.join(str(vi) for vi in __version_info__)
10 changes: 5 additions & 5 deletions tests/test_deploy_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -779,7 +779,7 @@ def _fake_update_permissions(*args, **kwargs):

first_args, first_kwargs = calls[0]
assert first_args == (str(prefix), 'e3sm')
assert first_kwargs['group_writable'] is True
assert first_kwargs['group_writable'] is False
assert first_kwargs['other_readable'] is False
assert first_kwargs['recursive'] is False

Expand Down Expand Up @@ -928,12 +928,12 @@ def _fake_update_permissions(*args, **kwargs):

first_args, first_kwargs = calls[0]
assert first_args == (str(prefix), 'e3sm')
assert first_kwargs['group_writable'] is True
assert first_kwargs['group_writable'] is False
assert first_kwargs['recursive'] is False

second_args, second_kwargs = calls[1]
assert second_args == (str(shared_dir), 'e3sm')
assert second_kwargs['group_writable'] is True
assert second_kwargs['group_writable'] is False
assert second_kwargs['recursive'] is False

third_args, third_kwargs = calls[2]
Expand Down Expand Up @@ -1017,13 +1017,13 @@ def _fake_update_permissions(*args, **kwargs):

first_args, first_kwargs = calls[0]
assert first_args == (str(shared_base), 'e3sm')
assert first_kwargs['group_writable'] is True
assert first_kwargs['group_writable'] is False
assert first_kwargs['other_readable'] is True
assert first_kwargs['recursive'] is True

second_args, second_kwargs = calls[1]
assert second_args == (str(managed_dir_outside), 'e3sm')
assert second_kwargs['group_writable'] is True
assert second_kwargs['group_writable'] is False
assert second_kwargs['recursive'] is False

third_args, third_kwargs = calls[2]
Expand Down
34 changes: 34 additions & 0 deletions tests/test_permissions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import os
import stat
from types import SimpleNamespace

from mache import permissions


def test_update_permissions_removes_group_write_bits(tmp_path, monkeypatch):
shared_dir = tmp_path / 'shared'
shared_dir.mkdir()
shared_file = shared_dir / 'data.txt'
shared_file.write_text('demo\n', encoding='utf-8')

shared_dir.chmod(0o775)
shared_file.chmod(0o664)

monkeypatch.setattr(
permissions.grp,
'getgrnam',
lambda _group: SimpleNamespace(gr_gid=os.getgid()),
)
monkeypatch.setattr(permissions.os, 'chown', lambda *_args: None)

permissions.update_permissions(
str(shared_dir),
'e3sm',
show_progress=False,
group_writable=False,
other_readable=True,
recursive=True,
)

assert stat.S_IMODE(shared_dir.stat().st_mode) == 0o755
assert stat.S_IMODE(shared_file.stat().st_mode) == 0o644
Loading