Skip to content

Commit e1249b5

Browse files
Merge pull request #1 from raphaeldussin/testing_fix_perms
add test for permissions
2 parents 5e5791b + 8779fad commit e1249b5

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

zarr/storage.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,9 +1267,6 @@ def __setitem__(self, key, value):
12671267
else:
12681268
keyinfo.external_attr = 0o644 << 16 # ?rw-r--r--
12691269

1270-
if isinstance(value, str):
1271-
value = value.encode("utf-8")
1272-
12731270
self.zf.writestr(keyinfo, value)
12741271

12751272
def __delitem__(self, key):

zarr/tests/test_storage.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import unittest
1010
from contextlib import contextmanager
1111
from pickle import PicklingError
12+
from zipfile import ZipFile
1213

1314
import numpy as np
1415
import pytest
@@ -947,6 +948,21 @@ def test_popitem(self):
947948
with pytest.raises(NotImplementedError):
948949
store.popitem()
949950

951+
def test_permissions(self):
952+
store = ZipStore('data/store.zip', mode='w')
953+
store['foo'] = b'bar'
954+
store['baz/'] = b''
955+
store.flush()
956+
store.close()
957+
z = ZipFile('data/store.zip', 'r')
958+
info = z.getinfo('foo')
959+
perm = oct( info.external_attr >> 16 )
960+
assert perm == '0o644'
961+
info = z.getinfo('baz/')
962+
perm = oct( info.external_attr >> 16 )
963+
assert perm == '0o40775'
964+
z.close()
965+
950966

951967
class TestDBMStore(StoreTests, unittest.TestCase):
952968

0 commit comments

Comments
 (0)