def test_invalid_types(self): for value in ('a', object(), b'rwxrwxrwx', None): try: Permissions.from_int(value) assert False, "Value \"%s\" (type: %s) do not fail" % (value, type(value)) except TypeError: pass
def test_mutated(self): perm = Permissions() assert perm.to_filemode() == '---------' expected_int = 0 for item in Permission: perm.set(item, True) expected_int = expected_int | item assert perm.to_filemode() == stat.filemode(expected_int)[1:]
def test_mutated(self): perm = Permissions() assert perm.to_octal() == '0000' expected_int = 0 for item in Permission: perm.set(item, True) expected_int = expected_int | item assert '0o' + perm.to_octal() == self._to_oct(expected_int)
def test_mutated(self): perm = Permissions() assert perm.to_int() == 0 expected_int = 0 for item in Permission: perm.set(item, True) expected_int = expected_int | item assert perm.to_int() == expected_int
def test_valid(self): perms = '0 1 2 3 4 5 6 7'.split() perms = itertools.product(perms, perms, perms, perms) for item in perms: item = ''.join(item) assert len(item) == 4 perm = Permissions.from_octal(item) assert isinstance(perm, Permissions) assert perm.to_octal() == item item = item[1:] perm = Permissions.from_octal(item) assert isinstance(perm, Permissions) assert perm.to_octal() == '0' + item
def test_valid(self): perms = '0 1 2 3 4 5 6 7'.split() perms = itertools.permutations(perms, 4) for item in perms: item = ''.join(item) assert len(item) == 4 item_int = int(item, 8) perm = Permissions.from_int(item_int) assert isinstance(perm, Permissions) assert perm.to_octal() == item item = item[1:] perm = Permissions.from_octal(item) assert isinstance(perm, Permissions) assert perm.to_octal() == '0' + item
def test_valid(self): path = tempfile.mkstemp()[1] perms = '0 1 2 3 4 5 6 7'.split() perms = itertools.permutations(perms, 4) try: for item in perms: item = ''.join(item) os.chmod(path, int(item, 8)) perm = Permissions.from_path(path) assert isinstance(perm, Permissions) assert perm.to_octal() == item path2 = pathlib.Path(path) perm = Permissions.from_path(path2) assert isinstance(perm, Permissions) assert perm.to_octal() == item finally: os.unlink(path)
def test_bad_input(self): perms_org = '0777' for i, _ in enumerate(perms_org): perms = perms_org[0:i] + 'a' + perms_org[i+1:] with pytest.raises(ValueError): Permissions.from_octal(perms) with pytest.raises(ValueError): Permissions.from_octal(perms_org[:-2]) with pytest.raises(ValueError): Permissions.from_octal(perms_org + 'x') with pytest.raises(ValueError): Permissions.from_octal('')
def test_bad_input(self): perms_org = 'rwxrwxrwx' for i, _ in enumerate(perms_org): perms = perms_org[0:i] + '1' + perms_org[i+1:] with pytest.raises(ValueError): Permissions.from_filemode(perms) with pytest.raises(ValueError): Permissions.from_filemode(perms_org[:-1]) with pytest.raises(ValueError): Permissions.from_filemode(perms_org + 'x') with pytest.raises(ValueError): Permissions.from_filemode('')
def test(self): perms = '0 1 2 3 4 5 6 7'.split() path = tempfile.mkstemp()[1] try: perms = itertools.product(perms, perms, perms, perms) for item in perms: item = ''.join(item) assert len(item) == 4 prm = Permissions.from_octal(item) os.lchmod(path, prm) assert stat.filemode(os.lstat(path).st_mode)[1:] == prm.to_filemode() finally: os.unlink(path)
def test_valid(self): perms = ( ('-r', '-w', '-xsS'), ('-r', '-w', '-xsS'), ('-r', '-w', '-xtT'), ) perms = itertools.product(*perms[0], *perms[1], *perms[2]) for item in perms: item = ''.join(item) assert len(item) == 9 perm = Permissions.from_filemode(item) assert isinstance(perm, Permissions) assert perm.to_filemode() == item
def test_immutated(self): for item in Permission: perm = Permissions() perm.set(item, True) assert perm.to_int() == int(item)
def test_immutated(self): for item in Permission: perm = Permissions() perm.set(item, True) assert perm.to_filemode() == stat.filemode(item)[1:]
def test_invalid_types(self): for value in (123, object(), b'rwxrwxrwx', True, None): with pytest.raises(TypeError): Permissions.from_filemode(value)
def test_immutated(self): for item in Permission: perm = Permissions() perm.set(item, True) assert '0o' + perm.to_octal() == self._to_oct(item)
def test_non_existed_files(self): with pytest.raises(FileNotFoundError): Permissions.from_path('/qwe') with pytest.raises(FileNotFoundError): Permissions.from_path(pathlib.Path('/qwe'))
def test_invalid_types(self): for value in ('a', 123, object(), b'rwxrwxrwx', True, None): with pytest.raises((TypeError, ValueError)): Permissions.from_octal(value)
def test_bad_input(self): for value in (int('7777', 8) + 1, ): with pytest.raises(ValueError): Permissions.from_int(value)