File tree Expand file tree Collapse file tree 2 files changed +24
-2
lines changed
Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Original file line number Diff line number Diff line change 11module Amazon
22 class FakeCommunicator
3+ def self . data
4+ @data ||= { }
5+ end
36 def initialize ( access_key_id , secret_access_key , region )
47 @access_key_id = access_key_id
58 @secret_access_key = secret_access_key
69 @region = region
10+ @bucket_files
711 end
812
913 def find_bucket ( bucket_name )
14+ FakeCommunicator . data [ bucket_name ] ||= { }
15+ @bucket_files = FakeCommunicator . data [ bucket_name ]
1016 _fake_bucket ( bucket_name )
1117 end
1218
@@ -77,6 +83,7 @@ def _fake_bucket(bucket_name)
7783 bucket = Object . new
7884 bucket . instance_variable_set ( :@bucket_name , bucket_name )
7985 bucket . instance_variable_set ( :@region , @region )
86+ bucket . instance_variable_set ( :@bucket_files , @bucket_files )
8087
8188 def bucket . get_folders ( folder : "" )
8289 case @bucket_name
@@ -112,11 +119,14 @@ def bucket.find_files(file)
112119 end
113120
114121 def bucket . download_file ( object_name , local_file_name )
115- local_file_name
122+ Tempfile . open ( local_file_name ) do |file |
123+ file . write ( @bucket_files [ object_name ] )
124+ file
125+ end
116126 end
117127
118128 def bucket . upload_file ( object_name , local_file_name , content_type : nil )
119- true
129+ @bucket_files [ object_name ] = File . read ( local_file_name )
120130 end
121131
122132 def bucket . region
Original file line number Diff line number Diff line change 2222 expect ( link ) . to be_present
2323 expect ( link ) . to start_with ( "https://" )
2424 end
25+
26+ it "should upload and download a file to s3" do
27+ file = Tempfile . open ( "out.txt" ) do |f |
28+ f . write ( "hello world" )
29+ f
30+ end
31+ bucket . upload_file ( "sample.file" , file . path )
32+
33+ downloaded_file = bucket . download_file ( "sample.file" , "out.txt" )
34+ expect ( downloaded_file . class ) . to be ( Tempfile )
35+ expect ( downloaded_file . path ) . to include ( "out.txt" )
36+ end
2537 end
2638
2739 context "cannot find valid bucket" do
You can’t perform that action at this time.
0 commit comments