Skip to content

Commit 4db888e

Browse files
committed
Poll in deferred image tests
1 parent 63b05aa commit 4db888e

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

spec/ruby_llm/image_generation_spec.rb

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,17 @@ def save_and_verify_image(image)
2222
end
2323
end
2424

25-
def wait_for_deferred_image
26-
sleep(15) if VCR.current_cassette.recording?
25+
def save_and_verify_deferred_image(image)
26+
tries = 0
27+
28+
begin
29+
save_and_verify_image image
30+
rescue RSpec::Expectations::ExpectationNotMetError => e
31+
tries += 1
32+
sleep 1
33+
retry if tries < 20
34+
raise e
35+
end
2736
end
2837

2938
RSpec.describe RubyLLM::Image do
@@ -68,8 +77,7 @@ def wait_for_deferred_image
6877

6978
expect(image.deferred?).to be(true)
7079

71-
wait_for_deferred_image
72-
save_and_verify_image image
80+
save_and_verify_deferred_image image
7381
end
7482

7583
it 'google/nano-banana, an official replicate model, can paint images with custom parameters' do
@@ -81,17 +89,15 @@ def wait_for_deferred_image
8189

8290
expect(image.deferred?).to be(true)
8391

84-
wait_for_deferred_image
85-
save_and_verify_image image
92+
save_and_verify_deferred_image image
8693
end
8794

8895
it 'prunaai/hidream-l1-fast, an unofficial replicate model, can paint images' do
8996
image = RubyLLM.paint('a siamese cat', model: 'prunaai/hidream-l1-fast', output_format: 'png')
9097

9198
expect(image.deferred?).to be(true)
9299

93-
wait_for_deferred_image
94-
save_and_verify_image image
100+
save_and_verify_deferred_image image
95101
end
96102

97103
it 'validates model existence' do

spec/support/rspec_configuration.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
config.around do |example|
1515
cassette_name = example.full_description.parameterize(separator: '_').delete_prefix('rubyllm_')
16-
VCR.use_cassette(cassette_name) do
16+
VCR.use_cassette(cassette_name, record: :new_episodes) do
1717
example.run
1818
end
1919
end

0 commit comments

Comments
 (0)