forked from SeanHayes/django-inmemorystorage
-
Notifications
You must be signed in to change notification settings - Fork 1
/
tests.py
82 lines (68 loc) · 3.79 KB
/
tests.py
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
import unittest
from inmemorystorage import InMemoryStorage
from inmemorystorage.storage import InMemoryDir, InMemoryFile
from django.core.files.base import ContentFile
class MemoryStorageTests(unittest.TestCase):
def setUp(self):
self.storage = InMemoryStorage()
self.filesystem = self.storage.filesystem
def test_listdir(self):
self.assertEqual(self.storage.listdir(''), [[], []])
self.filesystem.add_child('dir0', InMemoryDir())
self.filesystem.add_child('file0', InMemoryFile())
self.assertEqual(self.storage.listdir(''), [['dir0'], ['file0']])
self.assertEqual(self.storage.listdir('dir0'), [[], []])
self.filesystem.resolve('dir0').add_child('subdir', InMemoryDir())
self.assertEqual(self.storage.listdir('dir0'), [['subdir'], []])
def test_delete(self):
self.filesystem.add_child('dir0', InMemoryDir())
self.filesystem.resolve('dir0').add_child('nested_file', InMemoryFile())
self.filesystem.add_child('file0', InMemoryFile())
self.assertEqual(self.filesystem.resolve('dir0').ls(), ['nested_file'])
self.storage.delete('dir0/nested_file')
self.assertEqual(self.filesystem.resolve('dir0').ls(), [])
self.assertEqual(set(self.filesystem.ls()), set(['dir0', 'file0']))
self.storage.delete('dir0')
self.assertEqual(set(self.filesystem.ls()), set(['file0']))
def test_exists(self):
self.filesystem.add_child('file0', InMemoryFile())
self.assertTrue(self.storage.exists('file0'))
self.assertFalse(self.storage.exists('file1'))
self.storage.delete('file0')
self.assertFalse(self.storage.exists('file0'))
def test_size(self):
self.filesystem.add_child('file0', InMemoryFile('test'))
self.assertEqual(self.storage.size('file0'), 4)
def test_save(self):
self.storage.save('file', ContentFile('test'))
self.assertEqual(self.storage.size('file'), 4)
self.storage.save('subdir/file', ContentFile('test'))
self.assertEqual(self.storage.size('subdir/file'), 4)
def test_write(self):
with self.storage.open("file", "w") as f:
f.write("hello")
with self.storage.open("file", "r") as f:
self.assertEqual(f.read(), "hello")
def test_all(self):
self.assertEqual(self.storage.listdir('/'), [[], []])
self.assertEqual(self.storage.save('dir/subdir/file', ContentFile('testing')), 'dir/subdir/file')
self.assertEqual(self.storage.listdir('/'), [['dir'], []])
self.assertEqual(self.storage.listdir('dir/'), [['subdir'], []])
self.assertEqual(self.storage.save('dir/subdir/file2', ContentFile('testing2')), 'dir/subdir/file2')
self.assertEqual(self.storage.save('file', ContentFile('testing3')), 'file')
self.assertEqual(self.storage.listdir('/'), [['dir'], ['file']])
self.assertEqual(self.storage.listdir('dir/'), [['subdir'], []])
self.assertEqual(self.storage.open('dir/subdir/file').read(), 'testing')
self.assertEqual(self.storage.size('dir/subdir/file'), 7)
self.assertEqual(self.storage.size('dir/subdir/file2'), 8)
self.assertEqual(self.storage.size('file'), 8)
self.assertEqual(self.storage.delete('file'), None)
self.assertEqual(self.storage.listdir('/'), [['dir'], []])
self.assertEqual(self.storage.delete('dir/subdir/file'), None)
self.assertEqual(self.storage.listdir('dir/subdir'), [[], ['file2']])
self.assertEqual(self.storage.exists('dir/subdir/file2'), True)
self.assertEqual(self.storage.delete('dir/subdir/file2'), None)
self.assertEqual(self.storage.exists('dir/subdir/file2'), False)
self.assertEqual(self.storage.listdir('dir/subdir'), [[], []])
if __name__ == '__main__':
unittest.main()