File: test_wrap.py

package info (click to toggle)
python-fs 2.4.12-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,276 kB
  • sloc: python: 11,724; makefile: 226; sh: 3
file content (97 lines) | stat: -rw-r--r-- 3,059 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
from __future__ import unicode_literals

import unittest

from fs import errors
from fs import open_fs
from fs import wrap


class TestWrap(unittest.TestCase):
    def test_readonly(self):
        mem_fs = open_fs("mem://")
        fs = wrap.read_only(mem_fs)

        with self.assertRaises(errors.ResourceReadOnly):
            fs.open("foo", "w")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.appendtext("foo", "bar")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.appendbytes("foo", b"bar")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.makedir("foo")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.move("foo", "bar")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.openbin("foo", "w")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.remove("foo")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.removedir("foo")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.setinfo("foo", {})

        with self.assertRaises(errors.ResourceReadOnly):
            fs.settimes("foo", {})

        with self.assertRaises(errors.ResourceReadOnly):
            fs.copy("foo", "bar")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.create("foo")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.writetext("foo", "bar")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.writebytes("foo", b"bar")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.makedirs("foo/bar")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.touch("foo")

        with self.assertRaises(errors.ResourceReadOnly):
            fs.upload("foo", None)

        with self.assertRaises(errors.ResourceReadOnly):
            fs.writefile("foo", None)

        self.assertTrue(mem_fs.isempty("/"))
        mem_fs.writebytes("file", b"read me")
        with fs.openbin("file") as read_file:
            self.assertEqual(read_file.read(), b"read me")

        with fs.open("file", "rb") as read_file:
            self.assertEqual(read_file.read(), b"read me")

    def test_cachedir(self):
        mem_fs = open_fs("mem://")
        mem_fs.makedirs("foo/bar/baz")
        mem_fs.touch("egg")

        fs = wrap.cache_directory(mem_fs)
        self.assertEqual(sorted(fs.listdir("/")), ["egg", "foo"])
        self.assertEqual(sorted(fs.listdir("/")), ["egg", "foo"])
        self.assertTrue(fs.isdir("foo"))
        self.assertTrue(fs.isdir("foo"))
        self.assertTrue(fs.isfile("egg"))
        self.assertTrue(fs.isfile("egg"))

        self.assertEqual(fs.getinfo("foo"), mem_fs.getinfo("foo"))
        self.assertEqual(fs.getinfo("foo"), mem_fs.getinfo("foo"))

        self.assertEqual(fs.getinfo("/"), mem_fs.getinfo("/"))
        self.assertEqual(fs.getinfo("/"), mem_fs.getinfo("/"))

        with self.assertRaises(errors.ResourceNotFound):
            fs.getinfo("/foofoo")