fakefs 0.6.1 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.rubocop.yml +8 -13
- data/CONTRIBUTORS +36 -17
- data/README.markdown +1 -1
- data/Rakefile +15 -4
- data/lib/fakefs/dir.rb +1 -1
- data/lib/fakefs/file.rb +13 -5
- data/lib/fakefs/file_system.rb +9 -9
- data/lib/fakefs/fileutils.rb +10 -14
- data/lib/fakefs/pathname.rb +12 -10
- data/lib/fakefs/version.rb +1 -1
- data/test/fake/file_test.rb +5 -5
- data/test/fakefs_test.rb +7 -13
- data/test/file/stat_test.rb +8 -0
- data/test/pathname_test.rb +73 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTI3MWUyNGQ3M2Q0MWQ3YmQ5ZjIzYTM1MTcxZDE2MTI5NzYxMDBlMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
Y2ZhNGRjYjU1N2MyZDUwN2QxNWQ0OGQ2NmZhM2M0MzgyZDZmM2VhNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MmU5M2M0OGJjOTFjMzJjZTdlY2Q2NzI4YzI1MWE2NWU2MTI3NDI0MTZjYTJh
|
10
|
+
ZDEyZjEzY2E3NmNiNmEzNDhkZGY4MzIyMzU4MDAxMTZjYjFhMjkwZGU1Njkw
|
11
|
+
ZjM5ZDI0ZTE2MTMwN2Q3NTJjY2VhZjczNGQ4M2Y0OTg3MTJjNzY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGJjODhjMjFiZmUyYTMxZjVlZGQ5NjlmY2IwNDk4NjA5NTFjZTNiYjk0Mjhl
|
14
|
+
YTQ3NGYwNGVkOWM5ZTM4YTZmNzA2YjAxN2E4YTY1Zjg2MzAxMTdiNTg1OWY1
|
15
|
+
NTdjMTBiNjViNzAwNDM0NWY2ZDllODQxM2ZjYmJjN2Y5YWYyOWE=
|
data/.rubocop.yml
CHANGED
@@ -7,21 +7,19 @@ AllCops:
|
|
7
7
|
Exclude:
|
8
8
|
- files/**/*
|
9
9
|
- templates/**/*
|
10
|
+
- etc/**/*
|
10
11
|
MethodLength:
|
11
12
|
Exclude:
|
12
13
|
- lib/**/*
|
13
14
|
- test/**/*.rb
|
14
15
|
- spec/**/*.rb
|
15
16
|
ClassLength:
|
16
|
-
|
17
|
-
- lib/**/*
|
18
|
-
- test/**/*
|
17
|
+
Enabled: false
|
19
18
|
LineLength:
|
20
19
|
Exclude:
|
21
20
|
- test/**/*
|
22
21
|
ParameterLists:
|
23
|
-
|
24
|
-
- lib/**/*
|
22
|
+
Enabled: false
|
25
23
|
Metrics/CyclomaticComplexity:
|
26
24
|
Severity: warning
|
27
25
|
Max: 20
|
@@ -29,22 +27,19 @@ Metrics/PerceivedComplexity:
|
|
29
27
|
Severity: warning
|
30
28
|
Max: 20
|
31
29
|
Lint/Eval:
|
32
|
-
|
33
|
-
- lib/**/*
|
30
|
+
Enabled: false
|
34
31
|
Metrics/BlockNesting:
|
35
32
|
Severity: warning
|
36
33
|
Max: 4
|
34
|
+
Metrics/AbcSize:
|
35
|
+
Enabled: false
|
37
36
|
Style/PredicateName:
|
38
37
|
Exclude:
|
39
38
|
- lib/fakefs/file.rb
|
40
39
|
Style/MethodName:
|
41
|
-
|
42
|
-
- lib/**/*.rb
|
43
|
-
- test/**/*.rb
|
40
|
+
Enabled: false
|
44
41
|
Style/ModuleFunction:
|
45
|
-
|
46
|
-
- lib/**/*.rb
|
47
|
-
- test/**/*.rb
|
42
|
+
Enabled: false
|
48
43
|
TrivialAccessors:
|
49
44
|
Enabled: true
|
50
45
|
ExactNameMatch: true
|
data/CONTRIBUTORS
CHANGED
@@ -1,73 +1,92 @@
|
|
1
1
|
Scott Taylor <scott@railsnewbie.com>
|
2
|
+
Pierre RAMBAUD <pierre.rambaud@numergy.com>
|
2
3
|
Pat Nakajima <patnakajima@gmail.com>
|
3
4
|
Chris Wanstrath <chris@ozmm.org>
|
4
5
|
Lukas Oberhuber <lukaso@gmail.com>
|
6
|
+
Brian Donovan <donovan@squareup.com>
|
5
7
|
Myles Eftos <myles@madpilot.com.au>
|
6
8
|
Jeff Hodges <jeff@somethingsimilar.com>
|
9
|
+
Pierre RAMBAUD <pierre.rambaud86@gmail.com>
|
7
10
|
Morten Møller Riis <mortenmoellerriis@gmail.com>
|
8
11
|
Matt Freels <matt@freels.name>
|
9
12
|
Eero Saynatkari <projects@kittensoft.org>
|
10
13
|
Andres Riofrio <riofrios@gmail.com>
|
14
|
+
Brian Donovan <me@brian-donovan.com>
|
15
|
+
Jacob Evans <jacob@dekz.net>
|
11
16
|
Víctor Martínez <knoopx@gmail.com>
|
12
|
-
Brian Donovan <donovan@squareup.com>
|
13
17
|
Mariusz Pietrzyk <wijet@wijet.pl>
|
14
18
|
John Firebaugh <john.firebaugh@gmail.com>
|
15
19
|
Sebastian Boehm <sebastian@sometimesfood.org>
|
20
|
+
Carlos Pardo <cpardo@altavistaed.com>
|
16
21
|
AlphaHydrae <hydrae.alpha@gmail.com>
|
17
22
|
Nick Quaranto <nick@quaran.to>
|
23
|
+
Dan Duvall <dduvall@wikimedia.org>
|
24
|
+
Toby Ovod-Everett <toby@ovod-everett.org>
|
18
25
|
Aaron Suggs <aaron@ktheory.com>
|
19
26
|
Victor Costan <costan@gmail.com>
|
20
27
|
Mateusz Juraszek <meceo00@gmail.com>
|
21
28
|
Eric MSP Veith <eveith@wwweb-library.net>
|
29
|
+
Leigh Caplan <lcaplan@onehub.com>
|
22
30
|
Daniel Dyba <daniel.dyba@gmail.com>
|
23
31
|
Maarten Hoogendoorn <maarten@moretea.nl>
|
24
32
|
Jon Yurek <jyurek@thoughtbot.com>
|
25
33
|
Jared Luxenberg <jared@jaredlux.com>
|
26
34
|
DSIW <dsiw@dsiw-it.de>
|
27
|
-
Greg Campbell <gtcampbell@gmail.com>
|
28
|
-
Lars Gierth <lars.gierth@gmail.com>
|
29
35
|
doc75 <github@virlet.org>
|
36
|
+
Lars Gierth <lars.gierth@gmail.com>
|
37
|
+
Greg Campbell <gtcampbell@gmail.com>
|
30
38
|
marano <thiagomarano@gmail.com>
|
31
39
|
Ben Mabey <ben@benmabey.com>
|
32
|
-
Jorge Orlando Munoz <jmunoz@altavistaed.com>
|
33
40
|
Mark <mark@amerine.net>
|
41
|
+
Jorge Orlando Munoz <jmunoz@altavistaed.com>
|
34
42
|
Sam Goldstein <sam@aboutus.org>
|
43
|
+
Adam Alboyadjian <adam@vistahigherlearning.com>
|
44
|
+
Rick Salevsky <rsalevsky@suse.com>
|
35
45
|
Scott Petersen <petersen@centtech.com>
|
36
|
-
|
46
|
+
Ryan McGeary <ryan@mcgeary.org>
|
37
47
|
Emil Soman <emil.soman@gmail.com>
|
48
|
+
Matt Todd <chiology@gmail.com>
|
38
49
|
Noah Paessel <knowuh@gmail.com>
|
39
|
-
Ryan McGeary <ryan@mcgeary.org>
|
40
50
|
dmathieu <42@dmathieu.com>
|
41
51
|
Oleg Sukhodolsky <os97673@gmail.com>
|
42
|
-
|
52
|
+
Winston Lee <lee.winston@gmail.com>
|
53
|
+
Radek Simko <radek.simko@gmail.com>
|
54
|
+
Grayson Wright <wright.grayson@gmail.com>
|
55
|
+
Zequez <zequez@gmail.com>
|
43
56
|
jameswilding <james@jameswilding.net>
|
44
57
|
Ed Ruder <ed@squareup.com>
|
45
58
|
Tymon Tobolski <i@teamon.eu>
|
46
59
|
Benjamin Oakes <hello@benjaminoakes.com>
|
47
60
|
Scott Barron <scott@elitists.net>
|
61
|
+
Eric Daspet <eric.daspet@survol.fr>
|
48
62
|
Andrius Chamentauskas <andrius.chamentauskas@gmail.com>
|
49
|
-
W. Andrew Loe III <andrew@andrewloe.com>
|
50
|
-
Toby Ovod-Everett <toby@ovod-everett.org>
|
51
63
|
Xavier Shay <xavier@squareup.com>
|
64
|
+
W. Andrew Loe III <andrew@andrewloe.com>
|
65
|
+
Matt Hoyle <matt@deployable.co>
|
52
66
|
Travis Herrick <travis@carbonfive.com>
|
53
|
-
rambutan <usul@usul-HP-EliteBook-8460p.(none)>
|
54
67
|
Keita Urashima <ursm@ursm.jp>
|
55
|
-
|
56
|
-
andrea longhi <andrea@spaghetticode.it>
|
68
|
+
rambutan <usul@usul-HP-EliteBook-8460p.(none)>
|
57
69
|
msassak <msassak@gmail.com>
|
70
|
+
andrea longhi <andrea@spaghetticode.it>
|
71
|
+
= <gokulnath@mobme.in>
|
72
|
+
Matthew Morgan <lytithwyn@gmail.com>
|
58
73
|
David Reese <david@whatcould.com>
|
59
|
-
timo3377 <tim.linquist@gmail.com>
|
60
74
|
Andrius Chamentauskas <sinsiliux@gmail.com>
|
75
|
+
timo3377 <tim.linquist@gmail.com>
|
61
76
|
Michael Scherer <misc@zarb.org>
|
62
77
|
Matt Rogers <mattrogers@sbcglobal.net>
|
78
|
+
Jakub Jirutka <jakub@jirutka.cz>
|
79
|
+
Paolo Gianrossi <paolino.gianrossi@gmail.com>
|
63
80
|
Mislav Marohnić <mislav.marohnic@gmail.com>
|
64
|
-
Andrew Ryan <nerdrew@gmail.com>
|
65
81
|
Rob Sanheim <rsanheim@gmail.com>
|
66
|
-
|
67
|
-
Chris Wanstrath <chris@github.com>
|
82
|
+
Andrew Ryan <nerdrew@gmail.com>
|
68
83
|
Toon Willems <willemstoon@gmail.com>
|
69
84
|
Ryan Scott Lewis <ryanscottlewis@lewis-software.com>
|
85
|
+
Chris Knadler <takeshi91k@gmail.com>
|
86
|
+
Chris Wanstrath <chris@github.com>
|
70
87
|
Yuta Shimizu <pachirel@gmail.com>
|
88
|
+
Sven Riedel <sr@gimp.org>
|
89
|
+
Dane O'Connor <dane.oconnor@gmail.com>
|
71
90
|
Jordi Massaguer Pla <jmassaguerpla@suse.de>
|
91
|
+
Maria Shaldibina <mariash@pivotallabs.com>
|
72
92
|
Benjamin Fleischer <github@benjaminfleischer.com>
|
73
|
-
Brian Donovan <me@brian-donovan.com>
|
data/README.markdown
CHANGED
data/Rakefile
CHANGED
@@ -3,6 +3,7 @@ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'test')
|
|
3
3
|
|
4
4
|
require 'bundler/setup'
|
5
5
|
require 'rake/testtask'
|
6
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "lib", "fakefs", "version"))
|
6
7
|
|
7
8
|
Rake::TestTask.new do |t|
|
8
9
|
t.libs << 'test'
|
@@ -26,10 +27,10 @@ rescue LoadError
|
|
26
27
|
puts "Rubocop task can't be loaded. `gem install rubocop`"
|
27
28
|
end
|
28
29
|
|
29
|
-
task default: [:test, :spec]
|
30
|
+
task default: [:test, :spec, :rubocop]
|
30
31
|
|
31
32
|
desc 'Push a new version to rubygems.org'
|
32
|
-
task :publish => [:test, :spec, :update_contributors, :release]
|
33
|
+
task :publish => [:test, :spec, :update_contributors, :tag, :release, :push]
|
33
34
|
|
34
35
|
desc 'Update contributors'
|
35
36
|
task :update_contributors do
|
@@ -45,6 +46,16 @@ end
|
|
45
46
|
desc 'Release a new version'
|
46
47
|
task :release do
|
47
48
|
sh "gem build fakefs.gemspec"
|
48
|
-
|
49
49
|
sh "gem push fakefs-*.gem"
|
50
|
-
end
|
50
|
+
end
|
51
|
+
|
52
|
+
desc 'tag'
|
53
|
+
task :tag do
|
54
|
+
version = FakeFS::Version::VERSION
|
55
|
+
sh "git tag v#{version}"
|
56
|
+
end
|
57
|
+
|
58
|
+
desc 'Run git push'
|
59
|
+
task :push do
|
60
|
+
sh "git push origin master"
|
61
|
+
end
|
data/lib/fakefs/dir.rb
CHANGED
@@ -98,7 +98,7 @@ module FakeFS
|
|
98
98
|
matches_for_pattern = lambda do |matcher|
|
99
99
|
[FileSystem.find(matcher) || []].flatten.map do |e|
|
100
100
|
if Dir.pwd.match(/\A\/?\z/) ||
|
101
|
-
|
101
|
+
!e.to_s.match(/\A#{Dir.pwd}\/?/)
|
102
102
|
e.to_s
|
103
103
|
else
|
104
104
|
e.to_s.match(/\A#{Dir.pwd}\/?/).post_match
|
data/lib/fakefs/file.rb
CHANGED
@@ -99,11 +99,7 @@ module FakeFS
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def self.size?(path)
|
102
|
-
if exists?(path) && !size(path).zero?
|
103
|
-
size(path)
|
104
|
-
else
|
105
|
-
nil
|
106
|
-
end
|
102
|
+
size(path) if exists?(path) && !size(path).zero?
|
107
103
|
end
|
108
104
|
|
109
105
|
def self.zero?(path)
|
@@ -276,6 +272,14 @@ module FakeFS
|
|
276
272
|
File.read(file, length, offset, mode: 'rb:ASCII-8BIT')
|
277
273
|
end
|
278
274
|
|
275
|
+
def self.fnmatch?(pattern, path, flags = 0)
|
276
|
+
RealFile.fnmatch?(pattern, path, flags)
|
277
|
+
end
|
278
|
+
|
279
|
+
class << self
|
280
|
+
alias_method :fnmatch, :fnmatch?
|
281
|
+
end
|
282
|
+
|
279
283
|
# FakeFS Stat class
|
280
284
|
class Stat
|
281
285
|
attr_reader :ctime, :mtime, :atime, :mode, :uid, :gid
|
@@ -511,6 +515,10 @@ module FakeFS
|
|
511
515
|
def size
|
512
516
|
File.size(@path)
|
513
517
|
end
|
518
|
+
|
519
|
+
def self.realdirpath(*args)
|
520
|
+
RealFile.realdirpath(*args)
|
521
|
+
end
|
514
522
|
end
|
515
523
|
|
516
524
|
if RUBY_VERSION >= '1.9.3'
|
data/lib/fakefs/file_system.rb
CHANGED
@@ -132,7 +132,7 @@ module FakeFS
|
|
132
132
|
directories_under(dir).map do |d|
|
133
133
|
d.entries.select do |f|
|
134
134
|
(f.is_a?(FakeFile) || f.is_a?(FakeDir)) &&
|
135
|
-
|
135
|
+
f.name.match(/\A(?!\.)/)
|
136
136
|
end
|
137
137
|
end.flatten.uniq
|
138
138
|
when []
|
@@ -143,14 +143,14 @@ module FakeFS
|
|
143
143
|
end
|
144
144
|
else
|
145
145
|
regex_body = pattern.gsub('.', '\.')
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
146
|
+
.gsub('?', '.')
|
147
|
+
.gsub('*', '.*')
|
148
|
+
.gsub('(', '\(')
|
149
|
+
.gsub(')', '\)')
|
150
|
+
.gsub(/\{(.*?)\}/) do
|
151
|
+
"(#{Regexp.last_match[1].gsub(',', '|')})"
|
152
|
+
end
|
153
|
+
.gsub(/\A\./, '(?!\.).')
|
154
154
|
dir.matches(/\A#{regex_body}\Z/)
|
155
155
|
end
|
156
156
|
|
data/lib/fakefs/fileutils.rb
CHANGED
@@ -3,17 +3,17 @@ module FakeFS
|
|
3
3
|
module FileUtils
|
4
4
|
extend self
|
5
5
|
|
6
|
-
def mkdir_p(list,
|
6
|
+
def mkdir_p(list, options = {})
|
7
7
|
list = [list] unless list.is_a?(Array)
|
8
8
|
list.each do |path|
|
9
9
|
# FileSystem.add call adds all the necessary parent directories but
|
10
10
|
# can't set their mode. Thus, we have to collect created directories
|
11
11
|
# here and set the mode later.
|
12
|
-
if
|
12
|
+
if options[:mode]
|
13
13
|
created_dirs = []
|
14
14
|
dir = path
|
15
15
|
|
16
|
-
until Dir.
|
16
|
+
until Dir.exist?(dir)
|
17
17
|
created_dirs << dir
|
18
18
|
dir = File.dirname(dir)
|
19
19
|
end
|
@@ -21,10 +21,9 @@ module FakeFS
|
|
21
21
|
|
22
22
|
FileSystem.add(path, FakeDir.new)
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
24
|
+
next unless options[:mode]
|
25
|
+
created_dirs.each do |d|
|
26
|
+
File.chmod(options[:mode], d)
|
28
27
|
end
|
29
28
|
end
|
30
29
|
end
|
@@ -38,7 +37,8 @@ module FakeFS
|
|
38
37
|
parent = path.split('/')
|
39
38
|
parent.pop
|
40
39
|
fail Errno::ENOENT, path unless parent.join == '' ||
|
41
|
-
|
40
|
+
parent.join == '.' ||
|
41
|
+
FileSystem.find(parent.join('/'))
|
42
42
|
fail Errno::EEXIST, path if FileSystem.find(path)
|
43
43
|
FileSystem.add(path, FakeDir.new)
|
44
44
|
end
|
@@ -50,7 +50,7 @@ module FakeFS
|
|
50
50
|
parent = l.split('/')
|
51
51
|
parent.pop
|
52
52
|
fail Errno::ENOENT, l unless parent.join == '' ||
|
53
|
-
|
53
|
+
FileSystem.find(parent.join('/'))
|
54
54
|
fail Errno::ENOENT, l unless FileSystem.find(l)
|
55
55
|
fail Errno::ENOTEMPTY, l unless FileSystem.find(l).empty?
|
56
56
|
rm(l)
|
@@ -68,7 +68,7 @@ module FakeFS
|
|
68
68
|
alias_method :remove, :rm
|
69
69
|
|
70
70
|
def rm_rf(list, options = {})
|
71
|
-
rm_r(list, options.merge(:
|
71
|
+
rm_r(list, options.merge(force: true))
|
72
72
|
end
|
73
73
|
alias_method :rmtree, :rm_rf
|
74
74
|
alias_method :safe_unlink, :rm_f
|
@@ -201,14 +201,10 @@ module FakeFS
|
|
201
201
|
uid = if user
|
202
202
|
user.to_s.match(/[0-9]+/) ? user.to_i :
|
203
203
|
Etc.getpwnam(user).uid
|
204
|
-
else
|
205
|
-
nil
|
206
204
|
end
|
207
205
|
gid = if group
|
208
206
|
group.to_s.match(/[0-9]+/) ? group.to_i :
|
209
207
|
Etc.getgrnam(group).gid
|
210
|
-
else
|
211
|
-
nil
|
212
208
|
end
|
213
209
|
File.chown(uid, gid, f)
|
214
210
|
else
|
data/lib/fakefs/pathname.rb
CHANGED
@@ -454,8 +454,8 @@ module FakeFS
|
|
454
454
|
prefix1, basename1 = r1
|
455
455
|
next if basename1 == '.'
|
456
456
|
if basename1 == '..' ||
|
457
|
-
|
458
|
-
|
457
|
+
basename_list2.empty? ||
|
458
|
+
basename_list2.first != '..'
|
459
459
|
prefix1 += basename1
|
460
460
|
break
|
461
461
|
end
|
@@ -629,33 +629,35 @@ module FakeFS
|
|
629
629
|
# This method has existed since 1.8.1.
|
630
630
|
#
|
631
631
|
def each_line(*args, &block) # :yield: line
|
632
|
-
|
632
|
+
File.open(@path, 'r') do |io|
|
633
|
+
io.each_line(*args, &block)
|
634
|
+
end
|
633
635
|
end
|
634
636
|
|
635
637
|
# See <tt>IO.read</tt>. Returns all data from the file,
|
636
638
|
# or the first +N+ bytes if specified.
|
637
639
|
def read(*args)
|
638
|
-
|
640
|
+
File.read(@path, *args)
|
639
641
|
end
|
640
642
|
|
641
643
|
# See <tt>IO.binread</tt>. Returns all the bytes from the file,
|
642
644
|
# or the first +N+ if specified.
|
643
645
|
def binread(*args)
|
644
|
-
|
646
|
+
File.binread(@path, *args)
|
645
647
|
end
|
646
648
|
|
647
649
|
# See <tt>IO.readlines</tt>. Returns all the lines from the file.
|
648
650
|
def readlines(*args)
|
649
|
-
|
651
|
+
File.readlines(@path, *args)
|
650
652
|
end
|
651
653
|
|
652
|
-
# See <tt>IO.sysopen</tt>.
|
653
|
-
def sysopen(*
|
654
|
-
|
654
|
+
# See <tt>IO.sysopen</tt>. Not supported by fakefs.
|
655
|
+
def sysopen(*_args)
|
656
|
+
fail NotImplementedError, 'sysopen is not supported by fakefs'
|
655
657
|
end
|
656
658
|
end
|
657
659
|
|
658
|
-
#
|
660
|
+
# Pathname class
|
659
661
|
class Pathname # * File *
|
660
662
|
# See <tt>File.atime</tt>. Returns last access time.
|
661
663
|
def atime
|
data/lib/fakefs/version.rb
CHANGED
data/test/fake/file_test.rb
CHANGED
@@ -97,16 +97,16 @@ class FakeFileTest < Test::Unit::TestCase
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def test_file_size_question_works
|
100
|
-
assert_nil FileTest.size?(
|
100
|
+
assert_nil FileTest.size?('does-not-exist.txt')
|
101
101
|
|
102
|
-
File.open(
|
102
|
+
File.open('empty.txt', 'w') do |f|
|
103
103
|
f << ''
|
104
104
|
end
|
105
|
-
assert_nil FileTest.size?(
|
105
|
+
assert_nil FileTest.size?('empty.txt')
|
106
106
|
|
107
|
-
File.open(
|
107
|
+
File.open('one-char.txt', 'w') do |f|
|
108
108
|
f << 'a'
|
109
109
|
end
|
110
|
-
assert_equal 1, FileTest.size?(
|
110
|
+
assert_equal 1, FileTest.size?('one-char.txt')
|
111
111
|
end
|
112
112
|
end
|
data/test/fakefs_test.rb
CHANGED
@@ -119,7 +119,7 @@ class FakeFSTest < Test::Unit::TestCase
|
|
119
119
|
|
120
120
|
def test_unlink_doesnt_error_on_file_not_found_with_rm_rf
|
121
121
|
assert_nothing_raised do
|
122
|
-
FileUtils.rm_rf(
|
122
|
+
FileUtils.rm_rf('/foo')
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
@@ -2424,18 +2424,6 @@ class FakeFSTest < Test::Unit::TestCase
|
|
2424
2424
|
assert FileTest.writable?('dir'), 'directories are writable'
|
2425
2425
|
end
|
2426
2426
|
|
2427
|
-
def test_pathname_exists_returns_correct_value
|
2428
|
-
FileUtils.touch 'foo'
|
2429
|
-
assert Pathname.new('foo').exist?
|
2430
|
-
|
2431
|
-
assert !Pathname.new('bar').exist?
|
2432
|
-
end
|
2433
|
-
|
2434
|
-
def test_pathname_method_is_faked
|
2435
|
-
FileUtils.mkdir_p '/path'
|
2436
|
-
assert Pathname('/path').exist?, 'Pathname() method is faked'
|
2437
|
-
end
|
2438
|
-
|
2439
2427
|
def test_dir_mktmpdir
|
2440
2428
|
FileUtils.mkdir '/tmp'
|
2441
2429
|
|
@@ -2620,6 +2608,12 @@ class FakeFSTest < Test::Unit::TestCase
|
|
2620
2608
|
end
|
2621
2609
|
end
|
2622
2610
|
|
2611
|
+
def test_fnmatch
|
2612
|
+
assert_equal File.fnmatch?('test', 'test'), true
|
2613
|
+
assert_equal File.fnmatch('nope', 'blargh'), false
|
2614
|
+
assert_equal File.fnmatch?('nope', 'blargh'), File.fnmatch('nope', 'blargh')
|
2615
|
+
end
|
2616
|
+
|
2623
2617
|
if RUBY_VERSION >= '1.9.1'
|
2624
2618
|
def test_absolute_path_with_absolute_path
|
2625
2619
|
assert_equal '/foo/bar', File.absolute_path('/foo/bar')
|
data/test/file/stat_test.rb
CHANGED
@@ -147,4 +147,12 @@ class FileStatTest < Test::Unit::TestCase
|
|
147
147
|
assert !File.respond_to?(:realpath)
|
148
148
|
end
|
149
149
|
end
|
150
|
+
|
151
|
+
def test_responds_to_realdirpath_only_on_1_9_2_and_greater
|
152
|
+
if RUBY_VERSION >= '1.9.2'
|
153
|
+
assert File.respond_to?(:realdirpath)
|
154
|
+
else
|
155
|
+
assert !File.respond_to?(:realdirpath)
|
156
|
+
end
|
157
|
+
end
|
150
158
|
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# Fake Pathname test class
|
4
|
+
class FakePathnameTest < Test::Unit::TestCase
|
5
|
+
include FakeFS
|
6
|
+
|
7
|
+
def setup
|
8
|
+
FakeFS.activate!
|
9
|
+
FileSystem.clear
|
10
|
+
|
11
|
+
@path = 'foo'
|
12
|
+
@pathname = Pathname.new(@path)
|
13
|
+
end
|
14
|
+
|
15
|
+
def teardown
|
16
|
+
FakeFS.deactivate!
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_filetest_exists_returns_correct_value
|
20
|
+
assert !@pathname.exist?
|
21
|
+
|
22
|
+
File.write(@path, '')
|
23
|
+
|
24
|
+
assert @pathname.exist?
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_io_each_line_with_block_yields_lines
|
28
|
+
File.write(@path, "one\ntwo\nthree\n")
|
29
|
+
|
30
|
+
yielded = []
|
31
|
+
@pathname.each_line { |line| yielded << line }
|
32
|
+
|
33
|
+
assert_equal yielded, ["one\n", "two\n", "three\n"]
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_io_each_line_without_block_returns_enumerator
|
37
|
+
File.write(@path, '')
|
38
|
+
|
39
|
+
assert @pathname.each_line.is_a?(Enumerator)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_io_read_returns_file_contents
|
43
|
+
File.write(@path, "some\ncontent")
|
44
|
+
|
45
|
+
assert_equal @pathname.read, "some\ncontent"
|
46
|
+
assert_equal @pathname.read(6), "some\nc"
|
47
|
+
assert_equal @pathname.read(4, 3), "e\nco"
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_io_binread_returns_file_contents
|
51
|
+
File.write(@path, "some\ncontent")
|
52
|
+
|
53
|
+
assert_equal @pathname.binread, "some\ncontent"
|
54
|
+
assert_equal @pathname.binread(6), "some\nc"
|
55
|
+
assert_equal @pathname.binread(4, 3), "e\nco"
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_io_binread_reads_contents_as_binary
|
59
|
+
File.write(@path, "some\ncontent")
|
60
|
+
|
61
|
+
assert_equal @pathname.binread.encoding.name, 'ASCII-8BIT'
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_io_readlines_returns_array_of_lines
|
65
|
+
File.write(@path, "one\ntwo\nthree\n")
|
66
|
+
|
67
|
+
assert_equal @pathname.readlines, ["one\n", "two\n", "three\n"]
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_io_sysopen_is_unsupported
|
71
|
+
assert_raise(NotImplementedError) { @pathname.sysopen }
|
72
|
+
end
|
73
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fakefs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Wanstrath
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-01-
|
15
|
+
date: 2015-01-14 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bundler
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- test/fakefs_test.rb
|
120
120
|
- test/file/stat_test.rb
|
121
121
|
- test/kernel_test.rb
|
122
|
+
- test/pathname_test.rb
|
122
123
|
- test/safe_test.rb
|
123
124
|
- test/test_helper.rb
|
124
125
|
- test/verify.rb
|
@@ -142,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
143
|
version: '0'
|
143
144
|
requirements: []
|
144
145
|
rubyforge_project:
|
145
|
-
rubygems_version: 2.4.
|
146
|
+
rubygems_version: 2.4.5
|
146
147
|
signing_key:
|
147
148
|
specification_version: 4
|
148
149
|
summary: A fake filesystem. Use it in your tests.
|
@@ -162,6 +163,7 @@ test_files:
|
|
162
163
|
- test/fakefs_test.rb
|
163
164
|
- test/file/stat_test.rb
|
164
165
|
- test/kernel_test.rb
|
166
|
+
- test/pathname_test.rb
|
165
167
|
- test/safe_test.rb
|
166
168
|
- test/test_helper.rb
|
167
169
|
- test/verify.rb
|