memfs 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,29 +2,29 @@ require 'spec_helper'
2
2
 
3
3
  module MemFs
4
4
  describe FileSystem do
5
- subject { fs }
5
+ subject { _fs }
6
6
 
7
7
  before :each do
8
8
  subject.mkdir '/test-dir'
9
9
  end
10
10
 
11
11
  describe '#chdir' do
12
- it "changes the current working directory" do
12
+ it 'changes the current working directory' do
13
13
  subject.chdir '/test-dir'
14
14
  expect(subject.getwd).to eq('/test-dir')
15
15
  end
16
16
 
17
- it "raises an error if directory does not exist" do
17
+ it 'raises an error if directory does not exist' do
18
18
  expect { subject.chdir('/nowhere') }.to raise_error(Errno::ENOENT)
19
19
  end
20
20
 
21
- it "raises an error if the destination is not a directory" do
21
+ it 'raises an error if the destination is not a directory' do
22
22
  subject.touch('/test-file')
23
23
  expect { subject.chdir('/test-file') }.to raise_error(Errno::ENOTDIR)
24
24
  end
25
25
 
26
- context "when a block is given" do
27
- it "changes current working directory for the block" do
26
+ context 'when a block is given' do
27
+ it 'changes current working directory for the block' do
28
28
  location = nil
29
29
  subject.chdir '/test-dir' do
30
30
  location = subject.getwd
@@ -32,16 +32,16 @@ module MemFs
32
32
  expect(location).to eq('/test-dir')
33
33
  end
34
34
 
35
- it "gets back to previous directory once the block is finished" do
35
+ it 'gets back to previous directory once the block is finished' do
36
36
  subject.chdir '/'
37
37
  expect {
38
38
  subject.chdir('/test-dir') {}
39
- }.to_not change{subject.getwd}
39
+ }.to_not change { subject.getwd }
40
40
  end
41
41
  end
42
42
 
43
- context "when the destination is a symlink" do
44
- it "sets current directory as the last link chain target" do
43
+ context 'when the destination is a symlink' do
44
+ it 'sets current directory as the last link chain target' do
45
45
  subject.symlink('/test-dir', '/test-link')
46
46
  subject.chdir('/test-link')
47
47
  expect(subject.getwd).to eq('/test-dir')
@@ -50,14 +50,14 @@ module MemFs
50
50
  end
51
51
 
52
52
  describe '#chmod' do
53
- it "changes permission bits on the named file" do
53
+ it 'changes permission bits on the named file' do
54
54
  subject.touch('/some-file')
55
55
  subject.chmod(0777, '/some-file')
56
56
  expect(subject.find!('/some-file').mode).to be(0100777)
57
57
  end
58
58
 
59
- context "when the named file is a symlink" do
60
- it "changes the permission bits on the symlink itself" do
59
+ context 'when the named file is a symlink' do
60
+ it 'changes the permission bits on the symlink itself' do
61
61
  subject.touch('/some-file')
62
62
  subject.symlink('/some-file', '/some-link')
63
63
  subject.chmod(0777, '/some-link')
@@ -66,56 +66,56 @@ module MemFs
66
66
  end
67
67
  end
68
68
 
69
- describe "#chown" do
69
+ describe '#chown' do
70
70
  before :each do
71
71
  subject.touch '/test-file'
72
72
  end
73
73
 
74
- it "changes the owner of the named file to the given numeric owner id" do
74
+ it 'changes the owner of the named file to the given numeric owner id' do
75
75
  subject.chown(42, nil, '/test-file')
76
76
  expect(subject.find!('/test-file').uid).to be(42)
77
77
  end
78
78
 
79
- it "changes the group of the named file to the given numeric group id" do
79
+ it 'changes the group of the named file to the given numeric group id' do
80
80
  subject.chown(nil, 42, '/test-file')
81
81
  expect(subject.find!('/test-file').gid).to be(42)
82
82
  end
83
83
 
84
- it "ignores nil user id" do
84
+ it 'ignores nil user id' do
85
85
  expect {
86
86
  subject.chown(nil, 42, '/test-file')
87
- }.to_not change{subject.find!('/test-file').uid}
87
+ }.to_not change { subject.find!('/test-file').uid }
88
88
  end
89
89
 
90
- it "ignores nil group id" do
90
+ it 'ignores nil group id' do
91
91
  expect {
92
92
  subject.chown(42, nil, '/test-file')
93
- }.to_not change{subject.find!('/test-file').gid}
93
+ }.to_not change { subject.find!('/test-file').gid }
94
94
  end
95
95
 
96
- it "ignores -1 user id" do
96
+ it 'ignores -1 user id' do
97
97
  expect {
98
98
  subject.chown(-1, 42, '/test-file')
99
- }.to_not change{subject.find!('/test-file').uid}
99
+ }.to_not change { subject.find!('/test-file').uid }
100
100
  end
101
101
 
102
- it "ignores -1 group id" do
102
+ it 'ignores -1 group id' do
103
103
  expect {
104
104
  subject.chown(42, -1, '/test-file')
105
- }.to_not change{subject.find!('/test-file').gid}
105
+ }.to_not change { subject.find!('/test-file').gid }
106
106
  end
107
107
 
108
- context "when the named entry is a symlink" do
108
+ context 'when the named entry is a symlink' do
109
109
  before :each do
110
110
  subject.symlink '/test-file', '/test-link'
111
111
  end
112
112
 
113
- it "changes the owner on the last target of the link chain" do
113
+ it 'changes the owner on the last target of the link chain' do
114
114
  subject.chown(42, nil, '/test-link')
115
115
  expect(subject.find!('/test-file').uid).to be(42)
116
116
  end
117
117
 
118
- it "changes the group on the last target of the link chain" do
118
+ it 'changes the group on the last target of the link chain' do
119
119
  subject.chown(nil, 42, '/test-link')
120
120
  expect(subject.find!('/test-file').gid).to be(42)
121
121
  end
@@ -133,19 +133,19 @@ module MemFs
133
133
  end
134
134
 
135
135
  describe '#clear!' do
136
- it "clear the registred entries" do
136
+ it 'clear the registred entries' do
137
137
  subject.clear!
138
138
  expect(subject.root.entry_names).to eq(%w[. .. tmp])
139
139
  end
140
140
 
141
- it "sets the current directory to /" do
141
+ it 'sets the current directory to /' do
142
142
  subject.clear!
143
143
  expect(subject.getwd).to eq('/')
144
144
  end
145
145
  end
146
146
 
147
147
  describe '#entries' do
148
- it "returns an array containing all of the filenames in the given directory" do
148
+ it 'returns an array containing all of the filenames in the given directory' do
149
149
  %w[/test-dir/new-dir /test-dir/new-dir2].each { |dir| subject.mkdir dir }
150
150
  subject.touch '/test-dir/test-file', '/test-dir/test-file2'
151
151
  expect(subject.entries('/test-dir')).to eq(%w[. .. new-dir new-dir2 test-file test-file2])
@@ -153,21 +153,21 @@ module MemFs
153
153
  end
154
154
 
155
155
  describe '#find' do
156
- context "when the entry for the given path exists" do
157
- it "returns the entry" do
156
+ context 'when the entry for the given path exists' do
157
+ it 'returns the entry' do
158
158
  entry = subject.find('/test-dir')
159
159
  expect(entry).not_to be_nil
160
160
  end
161
161
  end
162
162
 
163
- context "when there is no entry for the given path" do
164
- it "returns nil" do
163
+ context 'when there is no entry for the given path' do
164
+ it 'returns nil' do
165
165
  entry = subject.find('/no-file')
166
166
  expect(entry).to be_nil
167
167
  end
168
168
  end
169
169
 
170
- context "when a part of the given path is a symlink" do
170
+ context 'when a part of the given path is a symlink' do
171
171
  before :each do
172
172
  subject.symlink('/test-dir', '/test-dir-link')
173
173
  subject.symlink('/no-dir', '/test-no-link')
@@ -175,14 +175,14 @@ module MemFs
175
175
  end
176
176
 
177
177
  context "and the symlink's target exists" do
178
- it "returns the entry" do
178
+ it 'returns the entry' do
179
179
  entry = subject.find('/test-dir-link/test-file')
180
180
  expect(entry).not_to be_nil
181
181
  end
182
182
  end
183
183
 
184
184
  context "and the symlink's target does not exist" do
185
- it "returns nil" do
185
+ it 'returns nil' do
186
186
  entry = subject.find('/test-no-link/test-file')
187
187
  expect(entry).to be_nil
188
188
  end
@@ -191,34 +191,34 @@ module MemFs
191
191
  end
192
192
 
193
193
  describe '#find!' do
194
- context "when the entry for the given path exists" do
195
- it "returns the entry" do
194
+ context 'when the entry for the given path exists' do
195
+ it 'returns the entry' do
196
196
  entry = subject.find!('/test-dir')
197
197
  expect(entry).not_to be_nil
198
198
  end
199
199
  end
200
200
 
201
- context "when there is no entry for the given path" do
202
- it "raises an exception" do
201
+ context 'when there is no entry for the given path' do
202
+ it 'raises an exception' do
203
203
  expect { subject.find!('/no-file') }.to raise_exception
204
204
  end
205
205
  end
206
206
 
207
- context "when a part of the given path is a symlink" do
207
+ context 'when a part of the given path is a symlink' do
208
208
  before :each do
209
- fs.symlink('/test-dir', '/test-dir-link')
210
- fs.touch('/test-dir/test-file')
209
+ _fs.symlink('/test-dir', '/test-dir-link')
210
+ _fs.touch('/test-dir/test-file')
211
211
  end
212
212
 
213
213
  context "and the symlink's target exists" do
214
- it "returns the entry" do
214
+ it 'returns the entry' do
215
215
  entry = subject.find!('/test-dir-link/test-file')
216
216
  expect(entry).not_to be_nil
217
217
  end
218
218
  end
219
219
 
220
220
  context "and the symlink's target does not exist" do
221
- it "raises an exception" do
221
+ it 'raises an exception' do
222
222
  expect {
223
223
  subject.find!('/test-no-link/test-file')
224
224
  }.to raise_error
@@ -228,33 +228,33 @@ module MemFs
228
228
  end
229
229
 
230
230
  describe '#find_directory!' do
231
- it "returns the named directory" do
231
+ it 'returns the named directory' do
232
232
  expect(subject.find_directory!('/test-dir')).to be_a(Fake::Directory)
233
233
  end
234
234
 
235
- it "raises an error if the named entry is not a directory" do
235
+ it 'raises an error if the named entry is not a directory' do
236
236
  subject.touch '/test-file'
237
237
  expect { subject.find_directory!('/test-file') }.to raise_error(Errno::ENOTDIR)
238
238
  end
239
239
  end
240
240
 
241
241
  describe '#find_parent!' do
242
- it "returns the parent directory of the named entry" do
242
+ it 'returns the parent directory of the named entry' do
243
243
  expect(subject.find_parent!('/test-dir/test-file')).to be_a(Fake::Directory)
244
244
  end
245
245
 
246
- it "raises an error if the parent directory does not exist" do
246
+ it 'raises an error if the parent directory does not exist' do
247
247
  expect { subject.find_parent!('/no-dir/test-file') }.to raise_error(Errno::ENOENT)
248
248
  end
249
249
 
250
- it "raises an error if the parent is not a directory" do
250
+ it 'raises an error if the parent is not a directory' do
251
251
  subject.touch('/test-file')
252
252
  expect { subject.find_parent!('/test-file/test') }.to raise_error(Errno::ENOTDIR)
253
253
  end
254
254
  end
255
255
 
256
256
  describe '#getwd' do
257
- it "returns the current working directory" do
257
+ it 'returns the current working directory' do
258
258
  subject.chdir '/test-dir'
259
259
  expect(subject.getwd).to eq('/test-dir')
260
260
  end
@@ -265,18 +265,18 @@ module MemFs
265
265
  subject.touch('/some-file')
266
266
  end
267
267
 
268
- it "creates a hard link +dest+ that points to +src+" do
268
+ it 'creates a hard link +dest+ that points to +src+' do
269
269
  subject.link('/some-file', '/some-link')
270
270
  expect(subject.find!('/some-link').content).to be(subject.find!('/some-file').content)
271
271
  end
272
272
 
273
- it "does not create a symbolic link" do
273
+ it 'does not create a symbolic link' do
274
274
  subject.link('/some-file', '/some-link')
275
275
  expect(subject.find!('/some-link')).not_to be_a(Fake::Symlink)
276
276
  end
277
277
 
278
- context "when +new_name+ already exists" do
279
- it "raises an exception" do
278
+ context 'when +new_name+ already exists' do
279
+ it 'raises an exception' do
280
280
  subject.touch('/some-link')
281
281
  expect { subject.link('/some-file', '/some-link') }.to raise_error(SystemCallError)
282
282
  end
@@ -284,28 +284,28 @@ module MemFs
284
284
  end
285
285
 
286
286
  describe '#mkdir' do
287
- it "creates a directory" do
287
+ it 'creates a directory' do
288
288
  subject.mkdir '/new-dir'
289
289
  expect(subject.find!('/new-dir')).to be_a(Fake::Directory)
290
290
  end
291
291
 
292
- context "when a relative path is given" do
293
- it "creates a directory in current directory" do
292
+ context 'when a relative path is given' do
293
+ it 'creates a directory in current directory' do
294
294
  subject.chdir '/test-dir'
295
295
  subject.mkdir 'new-dir'
296
296
  expect(subject.find!('/test-dir/new-dir')).to be_a(Fake::Directory)
297
297
  end
298
298
  end
299
299
 
300
- context "when the directory already exists" do
301
- it "raises an exception" do
300
+ context 'when the directory already exists' do
301
+ it 'raises an exception' do
302
302
  expect { subject.mkdir('/') }.to raise_error(Errno::EEXIST)
303
303
  end
304
304
  end
305
305
  end
306
306
 
307
307
  describe '#new' do
308
- it "creates the root directory" do
308
+ it 'creates the root directory' do
309
309
  expect(subject.find!('/')).to be(subject.root)
310
310
  end
311
311
  end
@@ -322,38 +322,38 @@ module MemFs
322
322
  end
323
323
  end
324
324
 
325
- describe "#pwd" do
325
+ describe '#pwd' do
326
326
  it_behaves_like 'aliased method', :pwd, :getwd
327
327
  end
328
328
 
329
- describe "#rename" do
330
- it "renames the given file to the new name" do
329
+ describe '#rename' do
330
+ it 'renames the given file to the new name' do
331
331
  subject.touch('/test-file')
332
332
  subject.rename('/test-file', '/test-file2')
333
333
  expect(subject.find('/test-file2')).not_to be_nil
334
334
  end
335
335
 
336
- it "removes the old file" do
336
+ it 'removes the old file' do
337
337
  subject.touch('/test-file')
338
338
  subject.rename('/test-file', '/test-file2')
339
339
  expect(subject.find('/test-file')).to be_nil
340
340
  end
341
341
 
342
- it "can move a file in another directory" do
342
+ it 'can move a file in another directory' do
343
343
  subject.touch('/test-file')
344
344
  subject.rename('/test-file', '/test-dir/test-file')
345
345
  expect(subject.find('/test-dir/test-file')).not_to be_nil
346
346
  end
347
347
  end
348
348
 
349
- describe "#rmdir" do
350
- it "removes the given directory" do
349
+ describe '#rmdir' do
350
+ it 'removes the given directory' do
351
351
  subject.rmdir('/test-dir')
352
352
  expect(subject.find('/test-dir')).to be_nil
353
353
  end
354
354
 
355
- context "when the directory is not empty" do
356
- it "raises an exception" do
355
+ context 'when the directory is not empty' do
356
+ it 'raises an exception' do
357
357
  subject.mkdir('/test-dir/test-sub-dir')
358
358
  expect { subject.rmdir('/test-dir') }.to raise_error(Errno::ENOTEMPTY)
359
359
  end
@@ -361,13 +361,13 @@ module MemFs
361
361
  end
362
362
 
363
363
  describe '#symlink' do
364
- it "creates a symbolic link" do
364
+ it 'creates a symbolic link' do
365
365
  subject.symlink('/some-file', '/some-link')
366
366
  expect(subject.find!('/some-link')).to be_a(Fake::Symlink)
367
367
  end
368
368
 
369
- context "when +new_name+ already exists" do
370
- it "raises an exception" do
369
+ context 'when +new_name+ already exists' do
370
+ it 'raises an exception' do
371
371
  subject.touch('/some-file')
372
372
  subject.touch('/some-file2')
373
373
  expect { subject.symlink('/some-file', '/some-file2') }.to raise_error(Errno::EEXIST)
@@ -376,12 +376,12 @@ module MemFs
376
376
  end
377
377
 
378
378
  describe '#touch' do
379
- it "creates a regular file" do
379
+ it 'creates a regular file' do
380
380
  subject.touch '/some-file'
381
381
  expect(subject.find!('/some-file')).to be_a(Fake::File)
382
382
  end
383
383
 
384
- it "creates a regular file for each named filed" do
384
+ it 'creates a regular file for each named filed' do
385
385
  subject.touch '/some-file', '/some-file2'
386
386
  expect(subject.find!('/some-file2')).to be_a(Fake::File)
387
387
  end
@@ -392,7 +392,7 @@ module MemFs
392
392
  subject.touch '/some-file'
393
393
  end
394
394
 
395
- context "when the named file already exists" do
395
+ context 'when the named file already exists' do
396
396
  let(:time) { Time.now - 5000 }
397
397
  before :each do
398
398
  subject.touch '/some-file'
@@ -400,27 +400,27 @@ module MemFs
400
400
  file.atime = file.mtime = time
401
401
  end
402
402
 
403
- it "sets the access time of the touched file" do
403
+ it 'sets the access time of the touched file' do
404
404
  subject.touch '/some-file'
405
405
  expect(subject.find!('/some-file').atime).not_to eq(time)
406
406
  end
407
407
 
408
- it "sets the modification time of the touched file" do
408
+ it 'sets the modification time of the touched file' do
409
409
  subject.touch '/some-file'
410
410
  expect(subject.find!('/some-file').atime).not_to eq(time)
411
411
  end
412
412
  end
413
413
  end
414
414
 
415
- describe "#unlink" do
416
- it "deletes the named file" do
415
+ describe '#unlink' do
416
+ it 'deletes the named file' do
417
417
  subject.touch('/some-file')
418
418
  subject.unlink('/some-file')
419
419
  expect(subject.find('/some-file')).to be_nil
420
420
  end
421
421
 
422
- context "when the entry is a directory" do
423
- it "raises an exception" do
422
+ context 'when the entry is a directory' do
423
+ it 'raises an exception' do
424
424
  expect { subject.unlink('/test-dir') }.to raise_error
425
425
  end
426
426
  end