Module: Ollama::Testing
- Defined in:
- lib/ollama/testing.rb
Overview
Testing support module for stubbing Ollama client responses in specs
Defined Under Namespace
Modules: ClientExtension
Class Attribute Summary collapse
-
.stubbed_responses ⇒ Object
readonly
Returns the value of attribute stubbed_responses.
Class Method Summary collapse
Instance Method Summary collapse
- #clear_ollama_stubs ⇒ Object
- #stub_ollama_chat(content:, model: nil, role: "assistant", done: true, done_reason: "stop", extra: {}) ⇒ Object
- #stub_ollama_generate(content:, model: nil, done: true, extra: {}) ⇒ Object
Class Attribute Details
.stubbed_responses ⇒ Object (readonly)
Returns the value of attribute stubbed_responses.
9 10 11 |
# File 'lib/ollama/testing.rb', line 9 def stubbed_responses @stubbed_responses end |
Class Method Details
.clear! ⇒ Object
24 25 26 |
# File 'lib/ollama/testing.rb', line 24 def clear! @stubbed_responses = [] end |
.enqueue_stub(type, data) ⇒ Object
11 12 13 14 |
# File 'lib/ollama/testing.rb', line 11 def enqueue_stub(type, data) @stubbed_responses ||= [] @stubbed_responses << { type: type, data: data } end |
.pop_stub(type) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/ollama/testing.rb', line 16 def pop_stub(type) @stubbed_responses ||= [] idx = @stubbed_responses.find_index { |s| s[:type] == type } return unless idx @stubbed_responses.delete_at(idx)[:data] end |
Instance Method Details
#clear_ollama_stubs ⇒ Object
89 90 91 |
# File 'lib/ollama/testing.rb', line 89 def clear_ollama_stubs Ollama::Testing.clear! end |
#stub_ollama_chat(content:, model: nil, role: "assistant", done: true, done_reason: "stop", extra: {}) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/ollama/testing.rb', line 67 def stub_ollama_chat(content:, model: nil, role: "assistant", done: true, done_reason: "stop", extra: {}) Ollama::Testing.enqueue_stub(:chat, { "model" => model || Ollama.config.model, "created_at" => Time.now.utc.iso8601, "message" => { "role" => role, "content" => content }, "done" => done, "done_reason" => done_reason }.merge(stringify_keys(extra))) end |
#stub_ollama_generate(content:, model: nil, done: true, extra: {}) ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'lib/ollama/testing.rb', line 80 def stub_ollama_generate(content:, model: nil, done: true, extra: {}) Ollama::Testing.enqueue_stub(:generate, { "model" => model || Ollama.config.model, "created_at" => Time.now.utc.iso8601, "response" => content, "done" => done }.merge(stringify_keys(extra))) end |