Skip to content

Commit

Permalink
Merge pull request #543 from jpopelka/test-github-dependency-tree
Browse files Browse the repository at this point in the history
Test GithubDependencyTreeTask
  • Loading branch information
abs51295 authored Mar 7, 2018
2 parents 0bf1d0f + 84023ee commit 3a8e161
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 6 deletions.
2 changes: 1 addition & 1 deletion f8a_worker/workers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from f8a_worker.workers.csmock_worker import CsmockTask
from f8a_worker.workers.CVEchecker import CVEcheckerTask
from f8a_worker.workers.cvedbsync import CVEDBSyncTask
from f8a_worker.workers.dependency_parser import GithubDependencyTreeTask
from f8a_worker.workers.dependency_snapshot import DependencySnapshotTask
from f8a_worker.workers.digester import DigesterTask
from f8a_worker.workers.finalize import FinalizeTask, PackageFinalizeTask
Expand All @@ -33,5 +34,4 @@
from f8a_worker.workers.result_collector import ResultCollector, PackageResultCollector
from f8a_worker.workers.stackaggregator import StackAggregatorTask
from f8a_worker.workers.stackaggregator_v2 import StackAggregatorV2Task
from f8a_worker.workers.dependency_parser import GithubDependencyTreeTask
from f8a_worker.workers.unknown_dep_fetcher import UnknownDependencyFetcherTask
10 changes: 5 additions & 5 deletions f8a_worker/workers/dependency_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from f8a_worker.base import BaseTask
from f8a_worker.errors import TaskError
from f8a_worker.utils import TimedCommand, cwd, MavenCoordinates, add_maven_coords_to_set
from f8a_worker.utils import TimedCommand, cwd, add_maven_coords_to_set
from f8a_worker.process import Git
from tempfile import TemporaryDirectory
from pathlib import Path
Expand Down Expand Up @@ -36,16 +36,16 @@ def extract_dependencies(github_repo, github_sha):
repo = Git.clone(url=github_repo, path=workdir, timeout=3600)
repo.reset(revision=github_sha, hard=True)
with cwd(repo.repo_path):
output_file = Path.cwd() / "dependency-tree.txt"
cmd = ["mvn", "org.apache.maven.plugins:maven-dependency-plugin:3.0.2:tree",
"-DoutputType=dot",
"-DoutputFile={filename}".format(
filename=Path.cwd().joinpath("dependency-tree.txt")),
"-DoutputFile={filename}".format(filename=output_file),
"-DappendOutput=true"]
timed_cmd = TimedCommand(cmd)
status, output, error = timed_cmd.run(timeout=3600)
if status != 0 or not Path("dependency-tree.txt").is_file():
if status != 0 or not output_file.is_file():
raise TaskError(error)
with open("dependency-tree.txt") as f:
with output_file.open() as f:
return GithubDependencyTreeTask.parse_maven_dependency_tree(f.readlines())

@staticmethod
Expand Down
29 changes: 29 additions & 0 deletions tests/workers/test_github_dependency_tree.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""Test GithubDependencyTreeTask."""

import pytest

from f8a_worker.workers import GithubDependencyTreeTask


@pytest.mark.usefixtures("dispatcher_setup")
class TestGithubDependencyTreeTask(object):
"""Test GithubDependencyTreeTask."""

def test_maven_index_checker_repo(self):
"""Test GithubDependencyTreeTask."""
args = {'github_repo': 'https://github.com/fabric8-analytics/maven-index-checker.git',
'github_sha': 'de64e1534724e53766dda472e9418350b85a1521',
'email_ids': 'dummy'}
task = GithubDependencyTreeTask.create_test_instance(task_name='dependency_tree')
results = task.execute(args)

assert isinstance(results, dict)
assert set(results.keys()) == {'dependencies'}
obtained_dependencies = set(results['dependencies'])
expected_direct_dependencies = {'com.googlecode.json-simple:json-simple:1.1.1',
'org.apache.maven.indexer:indexer-core:6.0.0'}
assert expected_direct_dependencies.issubset(obtained_dependencies)
expected_transitive_dependencies = {'commons-io:commons-io:2.0.1',
'com.google.guava:guava:20.0',
'junit:junit:4.10'}
assert expected_transitive_dependencies.issubset(obtained_dependencies)

0 comments on commit 3a8e161

Please sign in to comment.