diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 15a2989..0f237a6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,22 +7,22 @@ repos: types: [file, python] language_version: python3.9 - repo: https://github.com/pre-commit/mirrors-isort - rev: v5.5.4 + rev: v5.10.1 hooks: - id: isort - repo: https://github.com/pycqa/flake8 - rev: 3.8.3 + rev: 4.0.1 hooks: - id: flake8 additional_dependencies: [flake8-docstrings] files: ^edgetest/ language_version: python3.9 - repo: https://github.com/jazzband/pip-tools - rev: 5.5.0 + rev: 6.6.2 hooks: - id: pip-compile - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.2.0 + rev: v4.2.0 hooks: - id: trailing-whitespace - id: debug-statements diff --git a/.whitesource b/.whitesource deleted file mode 100644 index 96443ed..0000000 --- a/.whitesource +++ /dev/null @@ -1,12 +0,0 @@ -{ - "scanSettings": { - "baseBranches": [] - }, - "checkRunSettings": { - "vulnerableCheckRunConclusionLevel": "failure", - "displayMode": "diff" - }, - "issueSettings": { - "minSeverityLevel": "LOW" - } -} diff --git a/docs/source/conf.py b/docs/source/conf.py index dff8db7..1270006 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -25,7 +25,7 @@ author = "Akshay Gupta" # The short X.Y version -version = "2022.4.0" +version = "2022.6.0" # The full version, including alpha/beta/rc tags release = "" diff --git a/edgetest/__init__.py b/edgetest/__init__.py index d898872..d6d13cd 100644 --- a/edgetest/__init__.py +++ b/edgetest/__init__.py @@ -1,7 +1,7 @@ """Package initialization.""" -__version__ = "2022.4.0" +__version__ = "2022.6.0" __title__ = "edgetest" __description__ = "Bleeding edge dependency testing" diff --git a/edgetest/report.py b/edgetest/report.py index 95d6c56..559ab9d 100644 --- a/edgetest/report.py +++ b/edgetest/report.py @@ -6,8 +6,10 @@ from .core import TestPackage +VALID_OUTPUTS = ["rst", "github"] -def gen_report(testers: List[TestPackage]) -> Any: + +def gen_report(testers: List[TestPackage], output_type: str = "rst") -> Any: """Generate a rST report. Parameters @@ -15,11 +17,17 @@ def gen_report(testers: List[TestPackage]) -> Any: testers : list A list of ``TestPackage`` objects. + output_type : str + A valid output type of ``rst`` or ``github`` + Returns ------- Any The report. """ + if output_type not in VALID_OUTPUTS: + raise ValueError(f"Invalid output_type provided: {output_type}") + headers = ["Environment", "Passing tests", "Upgraded packages", "Package version"] rows: List[List] = [] for env in testers: @@ -27,4 +35,4 @@ def gen_report(testers: List[TestPackage]) -> Any: for pkg in upgraded: rows.append([env.envname, env.status, pkg["name"], pkg["version"]]) - return tabulate(rows, headers=headers, tablefmt="rst") + return tabulate(rows, headers=headers, tablefmt=output_type) diff --git a/requirements.txt b/requirements.txt index e1edc8f..b78c20b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,13 +6,13 @@ # cerberus==1.3.4 # via edgetest (setup.cfg) -click==8.1.2 +click==8.1.3 # via edgetest (setup.cfg) packaging==21.3 # via edgetest (setup.cfg) pluggy==1.0.0 # via edgetest (setup.cfg) -pyparsing==3.0.8 +pyparsing==3.0.9 # via packaging tabulate==0.8.9 # via edgetest (setup.cfg) diff --git a/setup.cfg b/setup.cfg index b3b053a..faae06b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -33,7 +33,7 @@ include_package_data = True packages = find: install_requires = Cerberus<=1.3.4,>=1.3.0 - click<=8.1.2,>=7.0 + click<=8.1.3,>=7.0 pluggy<=1.0.0,>=1.0.0 tabulate<=0.8.9,>=0.8.9 packaging<=21.3,>20.6 @@ -98,7 +98,7 @@ console_scripts = edgetest = edgetest.interface:cli [bumpver] -current_version = "2022.3.1" +current_version = "2022.6.0" version_pattern = "YYYY.MM.INC0" commit_message = "Bump {old_version} to {new_version}" commit = True diff --git a/tests/test_report.py b/tests/test_report.py new file mode 100644 index 0000000..188be89 --- /dev/null +++ b/tests/test_report.py @@ -0,0 +1,43 @@ +from unittest.mock import patch + +import pytest + +from edgetest.core import TestPackage +from edgetest.report import gen_report + + +@patch("edgetest.report.tabulate", autospec=True) +@patch("edgetest.core.TestPackage.upgraded_packages", autospec=True) +def test_report(mock_test_package, mock_tabulate, plugin_manager): + """Test gen_report function""" + + tester_list = [ + TestPackage(hook=plugin_manager.hook, envname="myenv", upgrade=["myupgrade1"]), + TestPackage(hook=plugin_manager.hook, envname="myenv", upgrade=["myupgrade2"]), + ] + gen_report(tester_list) + mock_tabulate.assert_called_with( + [], + headers=[ + "Environment", + "Passing tests", + "Upgraded packages", + "Package version", + ], + tablefmt="rst", + ) + + gen_report(tester_list, output_type="github") + mock_tabulate.assert_called_with( + [], + headers=[ + "Environment", + "Passing tests", + "Upgraded packages", + "Package version", + ], + tablefmt="github", + ) + + with pytest.raises(ValueError) as e: + gen_report(tester_list, output_type="bad")