fog 0.3.15 → 0.3.16
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.
- data/Gemfile.lock +1 -1
- data/fog.gemspec +21 -11
- data/lib/fog.rb +1 -1
- data/lib/fog/core/collection.rb +1 -1
- data/lib/fog/rackspace/models/storage/files.rb +8 -8
- data/lib/fog/rackspace/requests/storage/get_object.rb +1 -1
- data/tests/aws/models/storage/directories_tests.rb +5 -0
- data/tests/aws/models/storage/directory_tests.rb +2 -6
- data/tests/aws/models/storage/file_tests.rb +5 -0
- data/tests/aws/models/storage/files_tests.rb +5 -0
- data/tests/google/models/storage/directories_tests.rb +5 -0
- data/tests/google/models/storage/directory_tests.rb +5 -0
- data/tests/google/models/storage/file_tests.rb +5 -0
- data/tests/google/models/storage/files_tests.rb +5 -0
- data/tests/helper.rb +10 -1
- data/tests/helpers/storage/directories_tests.rb +39 -0
- data/tests/helpers/storage/directory_tests.rb +24 -0
- data/tests/helpers/storage/file_tests.rb +32 -0
- data/tests/helpers/storage/files_tests.rb +47 -0
- data/tests/local/models/storage/directories_tests.rb +5 -0
- data/tests/local/models/storage/directory_tests.rb +5 -0
- data/tests/local/models/storage/file_tests.rb +5 -0
- data/tests/local/models/storage/files_tests.rb +5 -0
- data/tests/rackspace/models/storage/directories_tests.rb +5 -0
- data/tests/rackspace/models/storage/directory_tests.rb +5 -0
- data/tests/rackspace/models/storage/file_tests.rb +5 -0
- data/tests/rackspace/models/storage/files_tests.rb +5 -0
- metadata +22 -12
- data/spec/aws/models/storage/directories_spec.rb +0 -49
- data/spec/aws/models/storage/directory_spec.rb +0 -113
- data/spec/aws/models/storage/file_spec.rb +0 -121
- data/spec/aws/models/storage/files_spec.rb +0 -139
- data/spec/google/models/storage/directories_spec.rb +0 -49
- data/spec/google/models/storage/directory_spec.rb +0 -83
- data/spec/google/models/storage/file_spec.rb +0 -121
- data/spec/google/models/storage/files_spec.rb +0 -140
- data/tests/helpers/model_helper.rb +0 -72
@@ -1,49 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Fog::AWS::Storage::Directories' do
|
4
|
-
|
5
|
-
describe "#all" do
|
6
|
-
|
7
|
-
it "should include persisted directories" do
|
8
|
-
@directory = AWS[:storage].directories.create(:key => 'fogdirectorykey')
|
9
|
-
AWS[:storage].directories.all.map {|directory| @directory.key}.should include('fogdirectorykey')
|
10
|
-
@directory.destroy
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#create" do
|
16
|
-
|
17
|
-
it "should exist on s3" do
|
18
|
-
directory = AWS[:storage].directories.create(:key => 'fogdirectorykey')
|
19
|
-
AWS[:storage].directories.get(directory.key).should_not be_nil
|
20
|
-
directory.destroy
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "#get" do
|
26
|
-
|
27
|
-
it "should return a Fog::AWS::Storage::Directory if a matching directory exists" do
|
28
|
-
directory = AWS[:storage].directories.create(:key => 'fogdirectorykey')
|
29
|
-
get = AWS[:storage].directories.get('fogdirectorykey')
|
30
|
-
directory.attributes.should == get.attributes
|
31
|
-
directory.destroy
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should return nil if no matching directory exists" do
|
35
|
-
AWS[:storage].directories.get('fognotadirectory').should be_nil
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
describe "#reload" do
|
41
|
-
|
42
|
-
it "should reload data" do
|
43
|
-
directories = AWS[:storage].directories
|
44
|
-
directories.should == directories.reload
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|
@@ -1,113 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Fog::AWS::Storage::Directory' do
|
4
|
-
|
5
|
-
describe "#initialize" do
|
6
|
-
|
7
|
-
it "should remap attributes from parser" do
|
8
|
-
now = Time.now
|
9
|
-
directory = Fog::AWS::Storage::Directory.new(
|
10
|
-
'CreationDate' => now,
|
11
|
-
'Name' => 'directorykey'
|
12
|
-
)
|
13
|
-
directory.creation_date.should == now
|
14
|
-
directory.key.should == 'directorykey'
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
describe "#collection" do
|
20
|
-
|
21
|
-
it "should be the directories the directory is related to" do
|
22
|
-
directories = AWS[:storage].directories
|
23
|
-
directories.new.collection.should == directories
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
describe "#destroy" do
|
29
|
-
|
30
|
-
it "should return true if the directory is deleted" do
|
31
|
-
directory = AWS[:storage].directories.create(:key => 'fogmodeldirectory')
|
32
|
-
directory.destroy.should be_true
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should return false if the directory does not exist" do
|
36
|
-
directory = AWS[:storage].directories.new(:key => 'fogmodeldirectory')
|
37
|
-
directory.destroy.should be_false
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "#location" do
|
43
|
-
|
44
|
-
it "should return the location constraint" do
|
45
|
-
pending if Fog.mocking?
|
46
|
-
directory = AWS[:storage].directories.create(:key => 'fogmodeleudirectory', :location => 'EU')
|
47
|
-
directory.location.should == 'EU'
|
48
|
-
AWS[:eu_storage].directories.get('fogmodeleudirectory').destroy
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#payer" do
|
54
|
-
|
55
|
-
it "should return the request payment value" do
|
56
|
-
directory = AWS[:storage].directories.create(:key => 'fogmodeldirectory')
|
57
|
-
directory.payer.should == 'BucketOwner'
|
58
|
-
directory.destroy.should be_true
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
describe "#payer=" do
|
64
|
-
|
65
|
-
it "should set the request payment value" do
|
66
|
-
directory = AWS[:storage].directories.create(:key => 'fogmodeldirectory')
|
67
|
-
(directory.payer = 'Requester').should == 'Requester'
|
68
|
-
directory.destroy.should
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
describe "#reload" do
|
74
|
-
|
75
|
-
before(:each) do
|
76
|
-
@directory = AWS[:storage].directories.create(:key => 'fogmodeldirectory')
|
77
|
-
@reloaded = @directory.reload
|
78
|
-
end
|
79
|
-
|
80
|
-
after(:each) do
|
81
|
-
@directory.destroy
|
82
|
-
end
|
83
|
-
|
84
|
-
it "should reset attributes to remote state" do
|
85
|
-
@directory.attributes.should == @reloaded.attributes
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
|
-
describe "#save" do
|
91
|
-
|
92
|
-
before(:each) do
|
93
|
-
@directory = AWS[:storage].directories.new(:key => 'fogmodeldirectory')
|
94
|
-
end
|
95
|
-
|
96
|
-
it "should not exist in directories before save" do
|
97
|
-
AWS[:storage].directories.all.map {|directory| directory.key}.include?(@directory.key).should be_false
|
98
|
-
end
|
99
|
-
|
100
|
-
it "should return true when it succeeds" do
|
101
|
-
@directory.save.should be_true
|
102
|
-
@directory.destroy
|
103
|
-
end
|
104
|
-
|
105
|
-
it "should exist in directories after save" do
|
106
|
-
@directory.save
|
107
|
-
AWS[:storage].directories.all.map {|directory| directory.key}.include?(@directory.key).should be_true
|
108
|
-
@directory.destroy
|
109
|
-
end
|
110
|
-
|
111
|
-
end
|
112
|
-
|
113
|
-
end
|
@@ -1,121 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Fog::AWS::Storage::File' do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
@directory = AWS[:storage].directories.create(:key => 'fogdirectoryname')
|
7
|
-
end
|
8
|
-
|
9
|
-
after(:each) do
|
10
|
-
@directory.destroy
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "#initialize" do
|
14
|
-
|
15
|
-
it "should remap attributes from parser" do
|
16
|
-
now = Time.now
|
17
|
-
directory = Fog::AWS::Storage::File.new(
|
18
|
-
'Content-Length' => 10,
|
19
|
-
'Content-Type' => 'contenttype',
|
20
|
-
'Etag' => 'etag',
|
21
|
-
'Key' => 'key',
|
22
|
-
'Last-Modified' => now,
|
23
|
-
'Size' => 10,
|
24
|
-
'StorageClass' => 'storageclass'
|
25
|
-
)
|
26
|
-
directory.content_length == 10
|
27
|
-
directory.content_type.should == 'contenttype'
|
28
|
-
directory.etag.should == 'etag'
|
29
|
-
directory.key.should == 'key'
|
30
|
-
directory.last_modified.should == now
|
31
|
-
directory.size.should == 10
|
32
|
-
directory.storage_class.should == 'storageclass'
|
33
|
-
|
34
|
-
directory = Fog::AWS::Storage::File.new(
|
35
|
-
'ETag' => 'etag',
|
36
|
-
'LastModified' => now
|
37
|
-
)
|
38
|
-
directory.etag.should == 'etag'
|
39
|
-
directory.last_modified.should == now
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
describe "#directory" do
|
45
|
-
|
46
|
-
it "should be the directory the file is related to" do
|
47
|
-
@file = @directory.files.new(:key => 'foo')
|
48
|
-
@file.directory.should == @directory
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#copy" do
|
54
|
-
|
55
|
-
it "should return a Fog::AWS::Storage::File with matching attributes" do
|
56
|
-
other_directory = AWS[:storage].directories.create(:key => 'fogotherdirectoryname')
|
57
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
58
|
-
file = @directory.files.create(:key => 'fogfilename', :body => data)
|
59
|
-
other_file = file.copy('fogotherdirectoryname', 'fogotherfilename')
|
60
|
-
file.reload.attributes.reject{|key,value| [:key, :last_modified].include?(key)}.should == other_file.reload.attributes.reject{|key,value| [:key, :last_modified].include?(key)}
|
61
|
-
other_file.destroy
|
62
|
-
file.destroy
|
63
|
-
other_directory.destroy
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "#destroy" do
|
69
|
-
|
70
|
-
it "should return true if the file is deleted" do
|
71
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
72
|
-
file = @directory.files.create(:key => 'fogfilename', :body => data)
|
73
|
-
file.destroy.should be_true
|
74
|
-
end
|
75
|
-
|
76
|
-
it "should return true if the file does not exist" do
|
77
|
-
file = @directory.files.new(:key => 'fogfilename')
|
78
|
-
file.destroy.should be_true
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
|
-
describe "#reload" do
|
84
|
-
|
85
|
-
it "should reset attributes to remote state" do
|
86
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
87
|
-
file = @directory.files.create(:key => 'fogfilename', :body => data)
|
88
|
-
file.last_modified = Time.now
|
89
|
-
file.reload.attributes.should == file.attributes
|
90
|
-
file.destroy
|
91
|
-
end
|
92
|
-
|
93
|
-
end
|
94
|
-
|
95
|
-
describe "#save" do
|
96
|
-
|
97
|
-
it "should return the success value" do
|
98
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
99
|
-
file = @directory.files.new(:key => 'fogfilename', :body => data)
|
100
|
-
file.save.should be_true
|
101
|
-
file.destroy
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
|
106
|
-
describe "#url" do
|
107
|
-
|
108
|
-
it "should return a signed expiring url" do
|
109
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
110
|
-
file = @directory.files.create(:key => 'fogfilename', :body => data)
|
111
|
-
url = file.url(Time.now + 60 * 10)
|
112
|
-
url.should include("fogfilename", "Expires")
|
113
|
-
unless Fog.mocking?
|
114
|
-
open(url).read.should == File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r').read
|
115
|
-
end
|
116
|
-
file.destroy
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|
120
|
-
|
121
|
-
end
|
@@ -1,139 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Fog::AWS::Storage::Files' do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
@directory = AWS[:storage].directories.create(:key => "fog#{Time.now.to_f}")
|
7
|
-
end
|
8
|
-
|
9
|
-
after(:each) do
|
10
|
-
until @directory.files.reload.empty?
|
11
|
-
@directory.files.each {|file| file.destroy}
|
12
|
-
end
|
13
|
-
@directory.destroy
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "#initialize" do
|
17
|
-
|
18
|
-
it "should remap attributes from parser" do
|
19
|
-
files = Fog::AWS::Storage::Files.new(
|
20
|
-
'IsTruncated' => true,
|
21
|
-
'Marker' => 'marker',
|
22
|
-
'MaxKeys' => 1,
|
23
|
-
'Prefix' => 'prefix'
|
24
|
-
)
|
25
|
-
files.is_truncated.should == true
|
26
|
-
files.marker.should == 'marker'
|
27
|
-
files.max_keys.should == 1
|
28
|
-
files.prefix.should == 'prefix'
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "#all" do
|
34
|
-
|
35
|
-
it "should return nil if the directory does not exist" do
|
36
|
-
directory = AWS[:storage].directories.new(:key => 'notadirectory')
|
37
|
-
directory.files.all.should be_nil
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should return 1000 files and report truncated" do
|
41
|
-
1010.times do |n|
|
42
|
-
@directory.files.create(:key => "file-#{n}")
|
43
|
-
end
|
44
|
-
response = @directory.files.all
|
45
|
-
response.should have(1000).items
|
46
|
-
response.is_truncated.should be_true
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should limit the max_keys to 1000" do
|
50
|
-
1010.times do |n|
|
51
|
-
@directory.files.create(:key => "file-#{n}")
|
52
|
-
end
|
53
|
-
response = @directory.files.all(:max_keys => 2000)
|
54
|
-
response.should have(1000).items
|
55
|
-
response.max_keys.should == 2000
|
56
|
-
response.is_truncated.should be_true
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "#create" do
|
62
|
-
|
63
|
-
it "should exist on s3" do
|
64
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
65
|
-
file = @directory.files.create(:key => 'fogfilename', :body => data)
|
66
|
-
@directory.files.get('fogfilename').should_not be_nil
|
67
|
-
file.destroy
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
describe "#get" do
|
73
|
-
|
74
|
-
before(:each) do
|
75
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
76
|
-
@file = @directory.files.create(:key => 'fogfilename', :body => data)
|
77
|
-
end
|
78
|
-
|
79
|
-
after(:each) do
|
80
|
-
@file.destroy
|
81
|
-
end
|
82
|
-
|
83
|
-
it "should return a Fog::AWS::Storage::File with metadata and data" do
|
84
|
-
@file.reload
|
85
|
-
@file.body.should_not be_nil
|
86
|
-
@file.content_length.should_not be_nil
|
87
|
-
@file.etag.should_not be_nil
|
88
|
-
@file.last_modified.should_not be_nil
|
89
|
-
@file.destroy
|
90
|
-
end
|
91
|
-
|
92
|
-
it "should return chunked data if given a block" do
|
93
|
-
data = ''
|
94
|
-
@directory.files.get('fogfilename') do |chunk|
|
95
|
-
data << chunk
|
96
|
-
end
|
97
|
-
data.should == File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r').read
|
98
|
-
end
|
99
|
-
|
100
|
-
end
|
101
|
-
|
102
|
-
describe "#get_url" do
|
103
|
-
|
104
|
-
it "should return a signed expiring url" do
|
105
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
106
|
-
file = @directory.files.create(:key => 'fogfilename', :body => data)
|
107
|
-
url = @directory.files.get_url('fogfilename', Time.now + 60 * 10)
|
108
|
-
url.should include("fogfilename", "Expires")
|
109
|
-
unless Fog.mocking?
|
110
|
-
open(url).read.should == File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r').read
|
111
|
-
end
|
112
|
-
file.destroy
|
113
|
-
end
|
114
|
-
|
115
|
-
end
|
116
|
-
|
117
|
-
describe "#head" do
|
118
|
-
|
119
|
-
it "should return a Fog::AWS::Storage::File with metadata" do
|
120
|
-
data = File.open(File.dirname(__FILE__) + '/../../../lorem.txt', 'r')
|
121
|
-
file = @directory.files.create(:key => 'fogfilename', :body => data)
|
122
|
-
file = @directory.files.get('fogfilename')
|
123
|
-
file.content_length.should_not be_nil
|
124
|
-
file.etag.should_not be_nil
|
125
|
-
file.last_modified.should_not be_nil
|
126
|
-
file.destroy
|
127
|
-
end
|
128
|
-
|
129
|
-
end
|
130
|
-
|
131
|
-
describe "#reload" do
|
132
|
-
|
133
|
-
it "should reload data" do
|
134
|
-
@directory.files.reload.should == @directory.files
|
135
|
-
end
|
136
|
-
|
137
|
-
end
|
138
|
-
|
139
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Fog::Google::Storage::Directories' do
|
4
|
-
|
5
|
-
describe "#all" do
|
6
|
-
|
7
|
-
it "should include persisted directories" do
|
8
|
-
@directory = Google[:storage].directories.create(:key => 'fogdirectorykey')
|
9
|
-
Google[:storage].directories.all.map {|directory| @directory.key}.should include('fogdirectorykey')
|
10
|
-
@directory.destroy
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#create" do
|
16
|
-
|
17
|
-
it "should exist on google storage" do
|
18
|
-
directory = Google[:storage].directories.create(:key => 'fogdirectorykey')
|
19
|
-
Google[:storage].directories.get(directory.key).should_not be_nil
|
20
|
-
directory.destroy
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "#get" do
|
26
|
-
|
27
|
-
it "should return a Fog::Google::Storage::Directory if a matching directory exists" do
|
28
|
-
directory = Google[:storage].directories.create(:key => 'fogdirectorykey')
|
29
|
-
get = Google[:storage].directories.get('fogdirectorykey')
|
30
|
-
directory.attributes.should == get.attributes
|
31
|
-
directory.destroy
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should return nil if no matching directory exists" do
|
35
|
-
Google[:storage].directories.get('fognotadirectory').should be_nil
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
describe "#reload" do
|
41
|
-
|
42
|
-
it "should reload data" do
|
43
|
-
directories = Google[:storage].directories
|
44
|
-
directories.should == directories.reload
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|