diff options
| author | mo khan <mo.khan@gmail.com> | 2020-05-19 11:07:14 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-05-19 11:07:14 -0600 |
| commit | 41612a8ce02ba61dc76da5500076746757e1a89b (patch) | |
| tree | 75eafd4b3170637fbe8a5acdf72513e03399c47c /spec/unit/python/source_spec.rb | |
| parent | d413ca59eb620487764753290c78e561d60555fe (diff) | |
Add specs for parsing invalid urls
Diffstat (limited to 'spec/unit/python/source_spec.rb')
| -rw-r--r-- | spec/unit/python/source_spec.rb | 60 |
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 |
