Skip to content

Commit

Permalink
Get tests working for FileFetcher
Browse files Browse the repository at this point in the history
  • Loading branch information
greysteil committed Dec 7, 2018
1 parent aac0362 commit 3eff861
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 36 deletions.
5 changes: 5 additions & 0 deletions docker/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/.bundle/
/.env
/tmp
/dependabot-*.gem
Gemfile.lock
64 changes: 33 additions & 31 deletions docker/lib/dependabot/docker/file_fetcher.rb
Original file line number Diff line number Diff line change
@@ -1,40 +1,42 @@
# frozen_string_literal: true

require "dependabot/file_fetchers"
require "dependabot/file_fetchers/base"

module Dependabot
module FileFetchers
module Docker
class Docker < Dependabot::FileFetchers::Base
def self.required_files_in?(filenames)
filenames.any? { |f| f.match?(/dockerfile/i) }
end

def self.required_files_message
"Repo must contain a Dockerfile."
end

private

def fetch_files
fetched_files = []
fetched_files += dockerfiles

return fetched_files if fetched_files.any?

raise(
Dependabot::DependencyFileNotFound,
File.join(directory, "Dockerfile")
)
end

def dockerfiles
@dockerfiles ||=
repo_contents(raise_errors: false).
select { |f| f.type == "file" && f.name.match?(/dockerfile/i) }.
map { |f| fetch_file_from_host(f.name) }
end
module Docker
class FileFetcher < Dependabot::FileFetchers::Base
def self.required_files_in?(filenames)
filenames.any? { |f| f.match?(/dockerfile/i) }
end

def self.required_files_message
"Repo must contain a Dockerfile."
end

private

def fetch_files
fetched_files = []
fetched_files += dockerfiles

return fetched_files if fetched_files.any?

raise(
Dependabot::DependencyFileNotFound,
File.join(directory, "Dockerfile")
)
end

def dockerfiles
@dockerfiles ||=
repo_contents(raise_errors: false).
select { |f| f.type == "file" && f.name.match?(/dockerfile/i) }.
map { |f| fetch_file_from_host(f.name) }
end
end
end
end

Dependabot::FileFetchers.
register("docker", Dependabot::Docker::FileFetcher)
7 changes: 4 additions & 3 deletions docker/spec/dependabot/docker/file_fetcher_spec.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# frozen_string_literal: true

require "dependabot/file_fetchers/docker/docker"
require_relative "../shared_examples_for_file_fetchers"
require "spec_helper"
require "dependabot/docker/file_fetcher"
require_common_spec "file_fetchers/shared_examples_for_file_fetchers"

RSpec.describe Dependabot::FileFetchers::Docker::Docker do
RSpec.describe Dependabot::Docker::FileFetcher do
it_behaves_like "a dependency file fetcher"

let(:source) do
Expand Down
4 changes: 4 additions & 0 deletions docker/spec/fixtures/github/not_found.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
2 changes: 0 additions & 2 deletions lib/dependabot/file_fetchers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
require "dependabot/file_fetchers/java/gradle"
require "dependabot/file_fetchers/php/composer"
require "dependabot/file_fetchers/git/submodules"
require "dependabot/file_fetchers/docker/docker"
require "dependabot/file_fetchers/elixir/hex"
require "dependabot/file_fetchers/rust/cargo"
require "dependabot/file_fetchers/dotnet/nuget"
Expand All @@ -25,7 +24,6 @@ module FileFetchers
"pip" => FileFetchers::Python::Pip,
"composer" => FileFetchers::Php::Composer,
"submodules" => FileFetchers::Git::Submodules,
"docker" => FileFetchers::Docker::Docker,
"hex" => FileFetchers::Elixir::Hex,
"cargo" => FileFetchers::Rust::Cargo,
"nuget" => FileFetchers::Dotnet::Nuget,
Expand Down

0 comments on commit 3eff861

Please sign in to comment.