summaryrefslogtreecommitdiff
path: root/spec/unit/python
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/python')
-rw-r--r--spec/unit/python/source_spec.rb60
1 files changed, 41 insertions, 19 deletions
diff --git a/spec/unit/python/source_spec.rb b/spec/unit/python/source_spec.rb
index 227fbe3..839ff54 100644
--- a/spec/unit/python/source_spec.rb
+++ b/spec/unit/python/source_spec.rb
@@ -1,33 +1,55 @@
# frozen_string_literal: true
RSpec.describe Spandx::Python::Source do
- context 'when fetching metadata for a known package from https://pypi.org' do
- subject { described_class.default }
+ describe '#lookup' do
+ context 'when fetching metadata for a known package from https://pypi.org' do
+ subject { described_class.default }
- let(:result) do
- VCR.use_cassette('pypi/pytest-5.4.1') do
- subject.lookup('pytest', '5.4.1')
+ let(:result) do
+ VCR.use_cassette('pypi/pytest-5.4.1') do
+ subject.lookup('pytest', '5.4.1')
+ end
end
+
+ specify { expect(result).not_to be_nil }
+ specify { expect(result['info']).not_to be_nil }
+ specify { expect(result['info']['name']).to eql('pytest') }
+ specify { expect(result['info']['version']).to eql('5.4.1') }
end
- specify { expect(result).not_to be_nil }
- specify { expect(result['info']).not_to be_nil }
- specify { expect(result['info']['name']).to eql('pytest') }
- specify { expect(result['info']['version']).to eql('5.4.1') }
+ context 'when fetching metadata for a known package from https://test.pypi.org' do
+ subject { described_class.new({ 'name' => 'pypi', 'url' => 'https://test.pypi.org/simple', 'verify_ssl' => true }) }
+
+ let(:result) do
+ VCR.use_cassette('test.pypi/pip-18.1') do
+ subject.lookup('pip', '18.1')
+ end
+ end
+
+ specify { expect(result).not_to be_nil }
+ specify { expect(result['info']).not_to be_nil }
+ specify { expect(result['info']['name']).to eql('pip') }
+ specify { expect(result['info']['version']).to eql('18.1') }
+ end
end
- context 'when fetching metadata for a known package from https://test.pypi.org' do
- subject { described_class.new({ 'name' => 'pypi', 'url' => 'https://test.pypi.org/simple', 'verify_ssl' => true }) }
+ describe '.sources_from' do
+ context 'when the source is invalid' do
+ subject { described_class.sources_from(json) }
- let(:result) do
- VCR.use_cassette('test.pypi/pip-18.1') do
- subject.lookup('pip', '18.1')
+ let(:json) do
+ {
+ '_meta' => {
+ 'sources' => [
+ { name: 'pypi', url: '<%= @index_url %>', 'verify_ssl' => true }
+ ]
+ }
+ }
end
- end
- specify { expect(result).not_to be_nil }
- specify { expect(result['info']).not_to be_nil }
- specify { expect(result['info']['name']).to eql('pip') }
- specify { expect(result['info']['version']).to eql('18.1') }
+ it 'returns the default source' do
+ expect(subject).to match_array([described_class.default])
+ end
+ end
end
end