Skip to content

Commit 19bce2b

Browse files
committed
Refactor spec
1 parent e055041 commit 19bce2b

File tree

4 files changed

+48
-40
lines changed

4 files changed

+48
-40
lines changed

spec/fixtures/cassettes/files_fetch_image.yml

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/cassettes/files_fetch_image_poll.yml renamed to spec/fixtures/cassettes/files_fetch_image_retrieve.yml

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/cassettes/files_fetch_image_upload.yml

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/openai/client/files_spec.rb

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -132,24 +132,32 @@
132132
describe "#fetch_image" do
133133
let(:cassette) { "files fetch_image" }
134134
let(:upload_cassette) { "#{cassette} upload" }
135+
let(:retrieve_cassette) { "#{cassette} retrieve" }
135136
let(:filename) { "image.png" }
136137
let(:file) { File.join(RSPEC_ROOT, "fixtures/files", filename) }
137138
let(:upload_purpose) { "vision" }
139+
let(:response) { OpenAI::Client.new.files.content(id: upload_id) }
140+
141+
before do
142+
# We need to check the file has been processed by OpenAI
143+
# before we can delete it.
144+
retrieved = VCR.use_cassette(retrieve_cassette) do
145+
OpenAI::Client.new.files.retrieve(id: upload_id)
146+
end
147+
tries = 0
148+
until retrieved["status"] == "processed"
149+
raise "File not processed after 10 tries" if tries > 10
138150

139-
def poll_until_processed(max_attempts: 10)
140-
VCR.use_cassette("#{cassette}_poll", record: :new_episodes) do
141-
max_attempts.times do |attempt|
142-
retrieved = OpenAI::Client.new.files.retrieve(id: upload_id)
143-
return retrieved if retrieved["status"] == "processed"
144-
raise "File not processed after #{max_attempts} attempts" if attempt == max_attempts - 1
151+
sleep(1)
152+
retrieved = VCR.use_cassette(retrieve_cassette, record: :all) do
153+
OpenAI::Client.new.files.retrieve(id: upload_id)
145154
end
155+
tries += 1
146156
end
147157
end
148158

149159
it "succeeds in uploading and retrieving an image" do
150160
VCR.use_cassette(cassette) do
151-
poll_until_processed
152-
response = OpenAI::Client.new.files.content(id: upload_id)
153161
expect(response).to be_a(String)
154162
expect(response.size).to be > 0
155163
end

0 commit comments

Comments
 (0)