Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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:]
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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('')
Exemplo n.º 9
0
    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('')
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
    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
Exemplo n.º 12
0
 def test_immutated(self):
     for item in Permission:
         perm = Permissions()
         perm.set(item, True)
         assert perm.to_int() == int(item)
Exemplo n.º 13
0
 def test_immutated(self):
     for item in Permission:
         perm = Permissions()
         perm.set(item, True)
         assert perm.to_filemode() == stat.filemode(item)[1:]
Exemplo n.º 14
0
 def test_invalid_types(self):
     for value in (123, object(), b'rwxrwxrwx', True, None):
         with pytest.raises(TypeError):
             Permissions.from_filemode(value)
Exemplo n.º 15
0
    def test_immutated(self):
        for item in Permission:
            perm = Permissions()
            perm.set(item, True)

            assert '0o' + perm.to_octal() == self._to_oct(item)
Exemplo n.º 16
0
    def test_non_existed_files(self):
        with pytest.raises(FileNotFoundError):
            Permissions.from_path('/qwe')

        with pytest.raises(FileNotFoundError):
            Permissions.from_path(pathlib.Path('/qwe'))
Exemplo n.º 17
0
 def test_invalid_types(self):
     for value in ('a', 123, object(), b'rwxrwxrwx', True, None):
         with pytest.raises((TypeError, ValueError)):
             Permissions.from_octal(value)
Exemplo n.º 18
0
 def test_bad_input(self):
     for value in (int('7777', 8) + 1, ):
         with pytest.raises(ValueError):
             Permissions.from_int(value)