diff --git a/.pylintrc b/.pylintrc index 49589e8f5..1ad7a46d2 100644 --- a/.pylintrc +++ b/.pylintrc @@ -60,7 +60,8 @@ confidence= # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" # R0205,W0107,R1705,R1710,R1719,R1720,R1714 are all disable due to a forced upgrade to support python3.8 -disable=R0201,W0613,I0021,I0020,W1618,W1619,R0902,R0903,W0231,W0611,R0913,W0703,C0330,R0204,I0011,R0904,C0301, R0205,W0107,R1705,R1710,R1719,R1720,R1714 +# R1725,W0707 can be removed when we drop Python 2 support +disable=R0201,W0613,I0021,I0020,W1618,W1619,R0902,R0903,W0231,W0611,R0913,W0703,C0330,R0204,I0011,R0904,C0301, R0205,W0107,R1705,R1710,R1719,R1720,R1714,R1725,W0707 [REPORTS] diff --git a/aws_lambda_builders/workflows/python_pip/packager.py b/aws_lambda_builders/workflows/python_pip/packager.py index 4f3639a5b..87abb7765 100644 --- a/aws_lambda_builders/workflows/python_pip/packager.py +++ b/aws_lambda_builders/workflows/python_pip/packager.py @@ -550,7 +550,7 @@ def main(self, args, env_vars=None, shim=None): class PipRunner(object): """Wrapper around pip calls used by chalice.""" - _LINK_IS_DIR_PATTERN = "Processing (.+?)\n" " Link is a directory," " ignoring download_dir" + _LINK_IS_DIR_PATTERN = "Processing (.+?)\n Link is a directory, ignoring download_dir" def __init__(self, python_exe, pip, osutils=None): if osutils is None: diff --git a/requirements/dev.txt b/requirements/dev.txt index 8344b5801..86f7affde 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,19 +1,22 @@ -coverage==4.3.4 +coverage==5.3 flake8==3.3.0; python_version < '3.8' -flake8==3.7.9; python_version >= '3.8' -pytest-cov==2.4.0 -# astroid > 2.0.4 is not compatible with pylint1.7 -astroid>=1.5.8,<2.1.0; python_version < '3.8' -pylint==1.7.2; python_version < '3.8' -pylint==2.4.4; python_version >= '3.8' +flake8==3.8.4; python_version >= '3.8' +pytest-cov==2.10.1 + +# pylint 2 does not support Python 2. pylint 1.x requires astroid 1.x +astroid~=1.6.0; python_version < '3.6' +pylint~=1.9.5; python_version < '3.6' +pylint~=2.6.0; python_version >= '3.6' isort>=4.2.5,<5; python_version < '3.8' # Test requirements -pytest==3.0.7 -py==1.4.33 -mock==2.0.0 -parameterized==0.6.1 +pytest>=6.1.1; python_version >= '3.6' +pytest~=4.6.11; python_version < '3.6' # pytest dropped python 2 support after 4.6.x +mock==3.0.5; python_version < '3.6' +mock==4.0.2; python_version >= '3.6' +parameterized==0.7.4 pathlib2==2.3.2; python_version<"3.4" futures==3.2.0; python_version<"3.2.3" -# Py3.2 backport -backports.tempfile==1.0 + +# tempfile backport for < 3.6 +backports.tempfile==1.0; python_version<"3.7" diff --git a/tests/functional/test_builder.py b/tests/functional/test_builder.py index ac0fb3e51..9561ef442 100644 --- a/tests/functional/test_builder.py +++ b/tests/functional/test_builder.py @@ -59,4 +59,4 @@ def test_run_hello_workflow_with_exec_paths(self): with open(self.expected_filename, "r") as fp: contents = fp.read() - self.assertEquals(contents, self.expected_contents) + self.assertEqual(contents, self.expected_contents) diff --git a/tests/functional/test_cli.py b/tests/functional/test_cli.py index 7a2285e6b..e937cf23a 100644 --- a/tests/functional/test_cli.py +++ b/tests/functional/test_cli.py @@ -104,14 +104,14 @@ def test_run_hello_workflow_with_backcompat(self, flavor, protocol_version): response = json.loads(stdout_data) self.assertNotIn("error", response) self.assertIn("result", response) - self.assertEquals(response["result"]["artifacts_dir"], self.artifacts_dir) + self.assertEqual(response["result"]["artifacts_dir"], self.artifacts_dir) self.assertTrue(os.path.exists(self.expected_filename)) contents = "" with open(self.expected_filename, "r") as fp: contents = fp.read() - self.assertEquals(contents, self.expected_contents) + self.assertEqual(contents, self.expected_contents) shutil.rmtree(self.scratch_dir) @parameterized.expand([("request_through_stdin"), ("request_through_argument")]) @@ -160,4 +160,4 @@ def test_run_hello_workflow_incompatible(self, flavor): # Validate the response object. It should be error response response = json.loads(stdout_data) self.assertIn("error", response) - self.assertEquals(response["error"]["code"], 505) + self.assertEqual(response["error"]["code"], 505) diff --git a/tests/functional/test_utils.py b/tests/functional/test_utils.py index db2657c40..f19604dff 100644 --- a/tests/functional/test_utils.py +++ b/tests/functional/test_utils.py @@ -35,10 +35,10 @@ def test_must_respect_excludes_list(self): excludes = [".git", ".aws-sam", "*.pyc"] copytree(self.source, self.dest, ignore=shutil.ignore_patterns(*excludes)) - self.assertEquals(set(os.listdir(self.dest)), {"nested", "a"}) - self.assertEquals(set(os.listdir(os.path.join(self.dest, "nested"))), set()) - self.assertEquals(set(os.listdir(os.path.join(self.dest, "a"))), {"c"}) - self.assertEquals(set(os.listdir(os.path.join(self.dest, "a"))), {"c"}) + self.assertEqual(set(os.listdir(self.dest)), {"nested", "a"}) + self.assertEqual(set(os.listdir(os.path.join(self.dest, "nested"))), set()) + self.assertEqual(set(os.listdir(os.path.join(self.dest, "a"))), {"c"}) + self.assertEqual(set(os.listdir(os.path.join(self.dest, "a"))), {"c"}) def file(*args): diff --git a/tests/functional/workflows/java_gradle/test_java_utils.py b/tests/functional/workflows/java_gradle/test_java_utils.py index e8d4d0478..943a5db24 100644 --- a/tests/functional/workflows/java_gradle/test_java_utils.py +++ b/tests/functional/workflows/java_gradle/test_java_utils.py @@ -33,13 +33,13 @@ def test_listdir(self): names = ["a", "b", "c"] for n in names: self.new_file(self.src, n) - self.assertEquals(set(names), set(self.os_utils.listdir(self.src))) + self.assertEqual(set(names), set(self.os_utils.listdir(self.src))) def test_copy(self): f = self.new_file(self.src, "a") expected = os.path.join(self.dst, "a") copy_ret = self.os_utils.copy(f, expected) - self.assertEquals(expected, copy_ret) + self.assertEqual(expected, copy_ret) self.assertTrue("a" in os.listdir(self.dst)) def test_exists(self): diff --git a/tests/functional/workflows/java_maven/test_java_utils.py b/tests/functional/workflows/java_maven/test_java_utils.py index 9f0bb4c2e..feb93ef12 100644 --- a/tests/functional/workflows/java_maven/test_java_utils.py +++ b/tests/functional/workflows/java_maven/test_java_utils.py @@ -33,13 +33,13 @@ def test_listdir(self): names = ["a", "b", "c"] for n in names: self.new_file(self.src, n) - self.assertEquals(set(names), set(self.os_utils.listdir(self.src))) + self.assertEqual(set(names), set(self.os_utils.listdir(self.src))) def test_copy(self): f = self.new_file(self.src, "a") expected = os.path.join(self.dst, "a") copy_ret = self.os_utils.copy(f, expected) - self.assertEquals(expected, copy_ret) + self.assertEqual(expected, copy_ret) self.assertTrue("a" in os.listdir(self.dst)) def test_exists(self): diff --git a/tests/integration/workflows/custom_make/test_custom_make.py b/tests/integration/workflows/custom_make/test_custom_make.py index 6eec92c9f..1f641178e 100644 --- a/tests/integration/workflows/custom_make/test_custom_make.py +++ b/tests/integration/workflows/custom_make/test_custom_make.py @@ -44,7 +44,7 @@ def test_must_build_python_project_through_makefile(self): "chardet", "urllib3", "idna", - "urllib3-1.25.10.dist-info", + "urllib3-1.25.11.dist-info", "chardet-3.0.4.dist-info", "certifi-2020.4.5.2.dist-info", "certifi", @@ -55,7 +55,7 @@ def test_must_build_python_project_through_makefile(self): expected_files = self.test_data_files.union(dependencies_installed) output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_must_build_python_project_through_makefile_unknown_target(self): with self.assertRaises(WorkflowFailedError): diff --git a/tests/integration/workflows/dotnet_clipackage/test_dotnet.py b/tests/integration/workflows/dotnet_clipackage/test_dotnet.py index f570b0f33..2565aae42 100644 --- a/tests/integration/workflows/dotnet_clipackage/test_dotnet.py +++ b/tests/integration/workflows/dotnet_clipackage/test_dotnet.py @@ -40,7 +40,7 @@ def test_with_defaults_file(self): output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_require_parameters(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "RequireParameters") @@ -66,4 +66,4 @@ def test_require_parameters(self): output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) diff --git a/tests/integration/workflows/go_dep/test_go_dep.py b/tests/integration/workflows/go_dep/test_go_dep.py index 85e58689f..185d272bf 100644 --- a/tests/integration/workflows/go_dep/test_go_dep.py +++ b/tests/integration/workflows/go_dep/test_go_dep.py @@ -42,7 +42,7 @@ def test_builds_project_with_no_deps(self): expected_files = {"main"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_and_excludes_hidden_aws_sam(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "src", "excluded-files") @@ -59,7 +59,7 @@ def test_builds_project_and_excludes_hidden_aws_sam(self): expected_files = {"main"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_with_no_gopkg_file(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "src", "no-gopkg") @@ -74,7 +74,7 @@ def test_builds_project_with_no_gopkg_file(self): options={"artifact_executable_name": "main"}, ) - self.assertEquals( + self.assertEqual( "GoDepBuilder:DepEnsure - Exec Failed: could not find project Gopkg.toml," + " use dep init to initiate a manifest", str(ex.exception), @@ -95,7 +95,7 @@ def test_builds_project_with_remote_deps(self): expected_files = {"main"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_with_failed_remote_deps(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "src", "failed-remote") diff --git a/tests/integration/workflows/go_modules/test_go.py b/tests/integration/workflows/go_modules/test_go.py index d8e1e98ce..3fd79415e 100644 --- a/tests/integration/workflows/go_modules/test_go.py +++ b/tests/integration/workflows/go_modules/test_go.py @@ -38,7 +38,7 @@ def test_builds_project_without_dependencies(self): expected_files = {"no-deps-main"} output_files = set(os.listdir(self.artifacts_dir)) print(output_files) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_with_dependencies(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps") @@ -52,7 +52,7 @@ def test_builds_project_with_dependencies(self): ) expected_files = {"with-deps-main"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_fails_if_modules_cannot_resolve_dependencies(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "broken-deps") diff --git a/tests/integration/workflows/nodejs_npm/test_nodejs_npm.py b/tests/integration/workflows/nodejs_npm/test_nodejs_npm.py index b0c50b7c7..83a8de6e0 100644 --- a/tests/integration/workflows/nodejs_npm/test_nodejs_npm.py +++ b/tests/integration/workflows/nodejs_npm/test_nodejs_npm.py @@ -41,7 +41,7 @@ def test_builds_project_without_dependencies(self): expected_files = {"package.json", "included.js"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_and_excludes_hidden_aws_sam(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "excluded-files") @@ -56,7 +56,7 @@ def test_builds_project_and_excludes_hidden_aws_sam(self): expected_files = {"package.json", "included.js"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_with_remote_dependencies(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps") @@ -71,11 +71,11 @@ def test_builds_project_with_remote_dependencies(self): expected_files = {"package.json", "included.js", "node_modules"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) expected_modules = {"minimal-request-promise"} output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules"))) - self.assertEquals(expected_modules, output_modules) + self.assertEqual(expected_modules, output_modules) def test_builds_project_with_npmrc(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "npmrc") @@ -91,11 +91,11 @@ def test_builds_project_with_npmrc(self): expected_files = {"package.json", "included.js", "node_modules"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) expected_modules = {"fake-http-request"} output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules"))) - self.assertEquals(expected_modules, output_modules) + self.assertEqual(expected_modules, output_modules) def test_fails_if_npm_cannot_resolve_dependencies(self): diff --git a/tests/integration/workflows/python_pip/test_python_pip.py b/tests/integration/workflows/python_pip/test_python_pip.py index eb34293a0..dec957957 100644 --- a/tests/integration/workflows/python_pip/test_python_pip.py +++ b/tests/integration/workflows/python_pip/test_python_pip.py @@ -50,7 +50,7 @@ def test_must_build_python_project(self): else: expected_files = self.test_data_files.union({"numpy", "numpy-1.17.4.dist-info"}) output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_mismatch_runtime_python_project(self): # NOTE : Build still works if other versions of python are accessible on the path. eg: /usr/bin/python2.7 diff --git a/tests/integration/workflows/ruby_bundler/test_ruby.py b/tests/integration/workflows/ruby_bundler/test_ruby.py index 3de6eb4c3..9d392d811 100644 --- a/tests/integration/workflows/ruby_bundler/test_ruby.py +++ b/tests/integration/workflows/ruby_bundler/test_ruby.py @@ -33,7 +33,7 @@ def test_builds_project_without_dependencies(self): ) expected_files = {"handler.rb", "Gemfile", "Gemfile.lock", ".bundle", "vendor"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_with_dependencies(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps") @@ -42,7 +42,7 @@ def test_builds_project_with_dependencies(self): ) expected_files = {"handler.rb", "Gemfile", "Gemfile.lock", ".bundle", "vendor"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_builds_project_and_ignores_excluded_files(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "excluded-files") @@ -51,7 +51,7 @@ def test_builds_project_and_ignores_excluded_files(self): ) expected_files = {"handler.rb", "Gemfile", "Gemfile.lock", ".bundle", "vendor"} output_files = set(os.listdir(self.artifacts_dir)) - self.assertEquals(expected_files, output_files) + self.assertEqual(expected_files, output_files) def test_fails_if_bundler_cannot_resolve_dependencies(self): source_dir = os.path.join(self.TEST_DATA_FOLDER, "broken-deps") diff --git a/tests/unit/test_builder.py b/tests/unit/test_builder.py index 0551a14f8..15ca779a0 100644 --- a/tests/unit/test_builder.py +++ b/tests/unit/test_builder.py @@ -23,7 +23,7 @@ def test_must_load_all_default_workflows(self, get_workflow_mock, importlib_mock # instantiate builder = LambdaBuilder(self.lang, self.lang_framework, self.app_framework) - self.assertEquals(builder.supported_workflows, [self.DEFAULT_WORKFLOW_MODULE]) + self.assertEqual(builder.supported_workflows, [self.DEFAULT_WORKFLOW_MODULE]) # First check if the module was loaded importlib_mock.import_module.assert_called_once_with(self.DEFAULT_WORKFLOW_MODULE) @@ -44,7 +44,7 @@ def test_must_support_loading_custom_workflows(self, get_workflow_mock, importli # instantiate builder = LambdaBuilder(self.lang, self.lang_framework, self.app_framework, supported_workflows=modules) - self.assertEquals(builder.supported_workflows, modules) + self.assertEqual(builder.supported_workflows, modules) # Make sure the modules are loaded in same order as passed importlib_mock.import_module.assert_has_calls([call(m) for m in modules], any_order=False) @@ -56,7 +56,7 @@ def test_must_not_load_any_workflows(self, get_workflow_mock, importlib_mock): modules = [] # Load no modules builder = LambdaBuilder(self.lang, self.lang_framework, self.app_framework, supported_workflows=modules) - self.assertEquals(builder.supported_workflows, []) + self.assertEqual(builder.supported_workflows, []) # Make sure the modules are loaded in same order as passed importlib_mock.import_module.assert_not_called() diff --git a/tests/unit/test_path_resolver.py b/tests/unit/test_path_resolver.py index 35137028d..20d52ae7b 100644 --- a/tests/unit/test_path_resolver.py +++ b/tests/unit/test_path_resolver.py @@ -12,8 +12,8 @@ def setUp(self): self.path_resolver = PathResolver(runtime="chitti2.0", binary="chitti") def test_inits(self): - self.assertEquals(self.path_resolver.runtime, "chitti2.0") - self.assertEquals(self.path_resolver.binary, "chitti") + self.assertEqual(self.path_resolver.runtime, "chitti2.0") + self.assertEqual(self.path_resolver.binary, "chitti") def test_which_fails(self): with self.assertRaises(ValueError): @@ -23,4 +23,4 @@ def test_which_fails(self): def test_which_success_immediate(self): with mock.patch.object(self.path_resolver, "_which") as which_mock: which_mock.return_value = os.getcwd() - self.assertEquals(self.path_resolver.exec_paths, os.getcwd()) + self.assertEqual(self.path_resolver.exec_paths, os.getcwd()) diff --git a/tests/unit/test_registry.py b/tests/unit/test_registry.py index 4acd42c25..d1e0f70cd 100644 --- a/tests/unit/test_registry.py +++ b/tests/unit/test_registry.py @@ -19,7 +19,7 @@ def test_must_add_item(self): capability = Capability(language="a", dependency_manager="b", application_framework="c") self.registry[capability] = self.workflow_data - self.assertEquals(self.workflow_data, self.registry[capability]) + self.assertEqual(self.workflow_data, self.registry[capability]) @parameterized.expand( [ @@ -31,7 +31,7 @@ def test_must_add_item(self): def test_must_add_item_with_optional_capabilities(self, capability): self.registry[capability] = self.workflow_data - self.assertEquals(self.workflow_data, self.registry[capability]) + self.assertEqual(self.workflow_data, self.registry[capability]) def test_must_add_multiple_items(self): capability1 = Capability(language="a", dependency_manager="b", application_framework="c") @@ -40,7 +40,7 @@ def test_must_add_multiple_items(self): self.registry[capability1] = "some data" self.registry[capability2] = "some other data" - self.assertEquals(len(self.registry), 2) + self.assertEqual(len(self.registry), 2) self.assertTrue(capability1 in self.registry) self.assertTrue(capability2 in self.registry) @@ -48,7 +48,7 @@ def test_fail_on_duplciate_entry(self): capability = Capability(language="a", dependency_manager="b", application_framework="c") self.registry[capability] = self.workflow_data - self.assertEquals(self.workflow_data, self.registry[capability]) + self.assertEqual(self.workflow_data, self.registry[capability]) with self.assertRaises(KeyError): self.registry[capability] = "some other data" @@ -57,11 +57,11 @@ def test_must_clear_entries(self): capability = Capability(language="a", dependency_manager="b", application_framework="c") self.registry[capability] = self.workflow_data - self.assertEquals(len(self.registry), 1) + self.assertEqual(len(self.registry), 1) self.registry.clear() - self.assertEquals(len(self.registry), 0) + self.assertEqual(len(self.registry), 0) class TestRegistryLocking(TestCase): @@ -78,7 +78,7 @@ def setUp(self): def test_set_item_must_lock(self): self.registry[self.capability] = self.workflow_data - self.assertEquals(self.mock_lock.method_calls, self.expected_lock_call_order) + self.assertEqual(self.mock_lock.method_calls, self.expected_lock_call_order) def test_set_item_with_duplicate_must_release_lock(self): self.registry[self.capability] = self.workflow_data @@ -90,7 +90,7 @@ def test_set_item_with_duplicate_must_release_lock(self): # Try register duplicate self.registry[self.capability] = self.workflow_data - self.assertEquals(self.mock_lock.method_calls, self.expected_lock_call_order) + self.assertEqual(self.mock_lock.method_calls, self.expected_lock_call_order) def test_get_item_must_not_use_lock(self): self.registry[self.capability] = self.workflow_data @@ -98,7 +98,7 @@ def test_get_item_must_not_use_lock(self): _ = self.registry[self.capability] # noqa: F841 - self.assertEquals(self.mock_lock.method_calls, []) + self.assertEqual(self.mock_lock.method_calls, []) def test_contains_must_not_use_lock(self): self.registry[self.capability] = self.workflow_data @@ -106,7 +106,7 @@ def test_contains_must_not_use_lock(self): _ = self.capability in self.registry # noqa: F841 - self.assertEquals(self.mock_lock.method_calls, []) + self.assertEqual(self.mock_lock.method_calls, []) def test_clear_must_lock(self): self.registry[self.capability] = self.workflow_data @@ -114,7 +114,7 @@ def test_clear_must_lock(self): self.registry.clear() - self.assertEquals(self.mock_lock.method_calls, self.expected_lock_call_order) + self.assertEqual(self.mock_lock.method_calls, self.expected_lock_call_order) class TestGetWorkflow(TestCase): @@ -131,13 +131,13 @@ def test_must_get_workflow_from_custom_registry(self): self.registry[self.capability] = self.workflow_data result = get_workflow(self.capability, registry=self.registry) - self.assertEquals(result, self.workflow_data) + self.assertEqual(result, self.workflow_data) def test_must_get_workflow_from_default_registry(self): DEFAULT_REGISTRY[self.capability] = self.workflow_data result = get_workflow(self.capability) - self.assertEquals(result, self.workflow_data) + self.assertEqual(result, self.workflow_data) def test_must_raise_if_workflow_not_found(self): diff --git a/tests/unit/test_validator.py b/tests/unit/test_validator.py index d48abaaa8..e1cc8844a 100644 --- a/tests/unit/test_validator.py +++ b/tests/unit/test_validator.py @@ -8,7 +8,7 @@ def setUp(self): self.validator = RuntimeValidator(runtime="chitti2.0") def test_inits(self): - self.assertEquals(self.validator.runtime, "chitti2.0") + self.assertEqual(self.validator.runtime, "chitti2.0") def test_validate_runtime(self): self.validator.validate("/usr/bin/chitti") diff --git a/tests/unit/test_workflow.py b/tests/unit/test_workflow.py index a50f40d1d..390297e49 100644 --- a/tests/unit/test_workflow.py +++ b/tests/unit/test_workflow.py @@ -36,8 +36,8 @@ class TestWorkflow(BaseWorkflow): CAPABILITY = self.CAPABILITY1 result_cls = get_workflow(self.CAPABILITY1) - self.assertEquals(len(DEFAULT_REGISTRY), 1) - self.assertEquals(result_cls, TestWorkflow) + self.assertEqual(len(DEFAULT_REGISTRY), 1) + self.assertEqual(result_cls, TestWorkflow) def test_must_register_two_workflows(self): class TestWorkflow1(BaseWorkflow): @@ -48,9 +48,9 @@ class TestWorkflow2(BaseWorkflow): NAME = "TestWorkflow2" CAPABILITY = self.CAPABILITY2 - self.assertEquals(len(DEFAULT_REGISTRY), 2) - self.assertEquals(get_workflow(self.CAPABILITY1), TestWorkflow1) - self.assertEquals(get_workflow(self.CAPABILITY2), TestWorkflow2) + self.assertEqual(len(DEFAULT_REGISTRY), 2) + self.assertEqual(get_workflow(self.CAPABILITY1), TestWorkflow1) + self.assertEqual(get_workflow(self.CAPABILITY2), TestWorkflow2) def test_must_fail_if_name_not_present(self): @@ -59,8 +59,8 @@ def test_must_fail_if_name_not_present(self): class TestWorkflow1(BaseWorkflow): CAPABILITY = self.CAPABILITY1 - self.assertEquals(len(DEFAULT_REGISTRY), 0) - self.assertEquals(str(ctx.exception), "Workflow must provide a valid name") + self.assertEqual(len(DEFAULT_REGISTRY), 0) + self.assertEqual(str(ctx.exception), "Workflow must provide a valid name") def test_must_fail_if_capabilities_not_present(self): @@ -69,8 +69,8 @@ def test_must_fail_if_capabilities_not_present(self): class TestWorkflow1(BaseWorkflow): NAME = "somename" - self.assertEquals(len(DEFAULT_REGISTRY), 0) - self.assertEquals(str(ctx.exception), "Workflow 'somename' must register valid capabilities") + self.assertEqual(len(DEFAULT_REGISTRY), 0) + self.assertEqual(str(ctx.exception), "Workflow 'somename' must register valid capabilities") def test_must_fail_if_capabilities_is_wrong_type(self): @@ -80,8 +80,8 @@ class TestWorkflow1(BaseWorkflow): NAME = "somename" CAPABILITY = "wrong data type" - self.assertEquals(len(DEFAULT_REGISTRY), 0) - self.assertEquals(str(ctx.exception), "Workflow 'somename' must register valid capabilities") + self.assertEqual(len(DEFAULT_REGISTRY), 0) + self.assertEqual(str(ctx.exception), "Workflow 'somename' must register valid capabilities") class TestBaseWorkflow_init(TestCase): @@ -104,14 +104,14 @@ def test_must_initialize_variables(self): options={"c": "d"}, ) - self.assertEquals(self.work.source_dir, "source_dir") - self.assertEquals(self.work.artifacts_dir, "artifacts_dir") - self.assertEquals(self.work.scratch_dir, "scratch_dir") - self.assertEquals(self.work.manifest_path, "manifest_path") - self.assertEquals(self.work.runtime, "runtime") - self.assertEquals(self.work.executable_search_paths, [str(sys.executable)]) - self.assertEquals(self.work.optimizations, {"a": "b"}) - self.assertEquals(self.work.options, {"c": "d"}) + self.assertEqual(self.work.source_dir, "source_dir") + self.assertEqual(self.work.artifacts_dir, "artifacts_dir") + self.assertEqual(self.work.scratch_dir, "scratch_dir") + self.assertEqual(self.work.manifest_path, "manifest_path") + self.assertEqual(self.work.runtime, "runtime") + self.assertEqual(self.work.executable_search_paths, [str(sys.executable)]) + self.assertEqual(self.work.optimizations, {"a": "b"}) + self.assertEqual(self.work.options, {"c": "d"}) class TestBaseWorkflow_is_supported(TestCase): @@ -202,7 +202,7 @@ def test_must_execute_actions_in_sequence(self): self.work.binaries = {"binary": BinaryPath(resolver=resolver_mock, validator=validator_mock, binary="binary")} self.work.run() - self.assertEquals( + self.assertEqual( action_mock.method_calls, [call.action1.execute(), call.action2.execute(), call.action3.execute()] ) self.assertTrue(validator_mock.validate.call_count, 1) @@ -334,4 +334,4 @@ def test_must_pretty_print_workflow_info(self): \tName=Action2, Purpose=RESOLVE_DEPENDENCIES, Description=Resolves dependencies \tName=Action3, Purpose=COMPILE_SOURCE, Description=Compiles code""" - self.assertEquals(result, expected) + self.assertEqual(result, expected) diff --git a/tests/unit/workflows/java_gradle/test_actions.py b/tests/unit/workflows/java_gradle/test_actions.py index 08af9d344..ce8eb5da4 100644 --- a/tests/unit/workflows/java_gradle/test_actions.py +++ b/tests/unit/workflows/java_gradle/test_actions.py @@ -42,7 +42,7 @@ def test_error_in_init_file_copy_raises_action_error(self): ) with self.assertRaises(ActionFailedError) as raised: action.execute() - self.assertEquals(raised.exception.args[0], "Copy failed!") + self.assertEqual(raised.exception.args[0], "Copy failed!") def test_error_building_project_raises_action_error(self): self.subprocess_gradle.build.side_effect = GradleExecutionError(message="Build failed!") @@ -51,13 +51,13 @@ def test_error_building_project_raises_action_error(self): ) with self.assertRaises(ActionFailedError) as raised: action.execute() - self.assertEquals(raised.exception.args[0], "Gradle Failed: Build failed!") + self.assertEqual(raised.exception.args[0], "Gradle Failed: Build failed!") def test_computes_correct_cache_dir(self): action = JavaGradleBuildAction( self.source_dir, self.manifest_path, self.subprocess_gradle, self.scratch_dir, self.os_utils ) - self.assertEquals( + self.assertEqual( action.gradle_cache_dir, os.path.join(self.scratch_dir, JavaGradleBuildAction.GRADLE_CACHE_DIR_NAME) ) @@ -88,4 +88,4 @@ def test_error_in_artifact_copy_raises_action_error(self): action = JavaGradleCopyArtifactsAction(self.source_dir, self.artifacts_dir, self.build_dir, self.os_utils) with self.assertRaises(ActionFailedError) as raised: action.execute() - self.assertEquals(raised.exception.args[0], "scandir failed!") + self.assertEqual(raised.exception.args[0], "scandir failed!") diff --git a/tests/unit/workflows/java_gradle/test_gradle.py b/tests/unit/workflows/java_gradle/test_gradle.py index 1c46bf966..bdf98e80b 100644 --- a/tests/unit/workflows/java_gradle/test_gradle.py +++ b/tests/unit/workflows/java_gradle/test_gradle.py @@ -40,19 +40,19 @@ def setUp(self, MockOSUtils): def test_no_os_utils_build_init_throws(self): with self.assertRaises(ValueError) as err_assert: SubprocessGradle(gradle_binary=self.gradle_binary) - self.assertEquals(err_assert.exception.args[0], "Must provide OSUtils") + self.assertEqual(err_assert.exception.args[0], "Must provide OSUtils") def test_no_gradle_exec_init_throws(self): with self.assertRaises(ValueError) as err_assert: SubprocessGradle(None) - self.assertEquals(err_assert.exception.args[0], "Must provide Gradle BinaryPath") + self.assertEqual(err_assert.exception.args[0], "Must provide Gradle BinaryPath") def test_no_build_file_throws(self): self.os_utils.exists.side_effect = lambda d: False gradle = SubprocessGradle(gradle_binary=self.gradle_binary, os_utils=self.os_utils) with self.assertRaises(BuildFileNotFoundError) as raised: gradle.build(self.source_dir, self.manifest_path) - self.assertEquals( + self.assertEqual( raised.exception.args[0], "Gradle Failed: Gradle build file not found: %s" % self.manifest_path ) @@ -92,7 +92,7 @@ def test_raises_exception_if_retcode_not_0(self): gradle = SubprocessGradle(gradle_binary=self.gradle_binary, os_utils=self.os_utils) with self.assertRaises(GradleExecutionError) as err: gradle.build(self.source_dir, self.manifest_path) - self.assertEquals(err.exception.args[0], "Gradle Failed: Some Error Message") + self.assertEqual(err.exception.args[0], "Gradle Failed: Some Error Message") def test_includes_build_properties_in_command(self): gradle = SubprocessGradle(gradle_binary=self.gradle_binary, os_utils=self.os_utils) diff --git a/tests/unit/workflows/java_gradle/test_gradlew_resolver.py b/tests/unit/workflows/java_gradle/test_gradlew_resolver.py index 900f35a59..74486b9c8 100644 --- a/tests/unit/workflows/java_gradle/test_gradlew_resolver.py +++ b/tests/unit/workflows/java_gradle/test_gradlew_resolver.py @@ -16,7 +16,7 @@ def test_gradlew_exists_returns_gradlew(self): self.mock_os_utils.which.side_effect = lambda executable, executable_search_paths: [gradlew_path] resolver = GradleResolver(os_utils=self.mock_os_utils) - self.assertEquals(resolver.exec_paths, [gradlew_path]) + self.assertEqual(resolver.exec_paths, [gradlew_path]) def test_gradlew_not_exists_returns_gradle_on_path(self): gradle_path = "/path/to/gradle" @@ -25,17 +25,17 @@ def test_gradlew_not_exists_returns_gradle_on_path(self): ) resolver = GradleResolver(os_utils=self.mock_os_utils) - self.assertEquals(resolver.exec_paths, [gradle_path]) + self.assertEqual(resolver.exec_paths, [gradle_path]) def test_throws_value_error_if_no_exec_found(self): self.mock_os_utils.which.side_effect = lambda executable, executable_search_paths: [] resolver = GradleResolver(os_utils=self.mock_os_utils) with self.assertRaises(ValueError) as raised: resolver.exec_paths() - self.assertEquals(raised.exception.args[0], "No Gradle executable found!") + self.assertEqual(raised.exception.args[0], "No Gradle executable found!") @parameterized.expand([[True, "gradlew.bat"], [False, "gradlew"]]) def test_uses_correct_gradlew_name(self, is_windows, expected_wrapper_name): self.mock_os_utils.is_windows.side_effect = [is_windows] resolver = GradleResolver(os_utils=self.mock_os_utils) - self.assertEquals(resolver.wrapper_name, expected_wrapper_name) + self.assertEqual(resolver.wrapper_name, expected_wrapper_name) diff --git a/tests/unit/workflows/java_maven/test_actions.py b/tests/unit/workflows/java_maven/test_actions.py index dfd47cc30..9e207d186 100644 --- a/tests/unit/workflows/java_maven/test_actions.py +++ b/tests/unit/workflows/java_maven/test_actions.py @@ -28,7 +28,7 @@ def test_error_building_project_raises_action_error(self): action = JavaMavenBuildAction(self.scratch_dir, self.subprocess_maven) with self.assertRaises(ActionFailedError) as raised: action.execute() - self.assertEquals(raised.exception.args[0], "Maven Failed: Build failed!") + self.assertEqual(raised.exception.args[0], "Maven Failed: Build failed!") class TestJavaMavenCopyDependencyAction(TestCase): @@ -48,7 +48,7 @@ def test_error_building_project_raises_action_error(self): action = JavaMavenCopyDependencyAction(self.scratch_dir, self.subprocess_maven) with self.assertRaises(ActionFailedError) as raised: action.execute() - self.assertEquals(raised.exception.args[0], "Maven Failed: Build failed!") + self.assertEqual(raised.exception.args[0], "Maven Failed: Build failed!") class TestJavaMavenCopyArtifactsAction(TestCase): @@ -93,13 +93,13 @@ def test_error_in_artifact_copy_raises_action_error(self): action = JavaMavenCopyArtifactsAction(self.scratch_dir, self.artifacts_dir, self.os_utils) with self.assertRaises(ActionFailedError) as raised: action.execute() - self.assertEquals(raised.exception.args[0], "copy failed!") + self.assertEqual(raised.exception.args[0], "copy failed!") def test_missing_required_target_class_directory_raises_action_error(self): self.os_utils.exists.return_value = False action = JavaMavenCopyArtifactsAction(self.scratch_dir, self.artifacts_dir, self.os_utils) with self.assertRaises(ActionFailedError) as raised: action.execute() - self.assertEquals( + self.assertEqual( raised.exception.args[0], "Required target/classes directory was not " "produced from 'mvn package'" ) diff --git a/tests/unit/workflows/java_maven/test_maven.py b/tests/unit/workflows/java_maven/test_maven.py index f24efad50..d4ada149c 100644 --- a/tests/unit/workflows/java_maven/test_maven.py +++ b/tests/unit/workflows/java_maven/test_maven.py @@ -35,12 +35,12 @@ def setUp(self, MockOSUtils): def test_no_os_utils_build_init_throws(self): with self.assertRaises(ValueError) as err_assert: SubprocessMaven(maven_binary=self.maven_binary) - self.assertEquals(err_assert.exception.args[0], "Must provide OSUtils") + self.assertEqual(err_assert.exception.args[0], "Must provide OSUtils") def test_no_maven_exec_init_throws(self): with self.assertRaises(ValueError) as err_assert: SubprocessMaven(None) - self.assertEquals(err_assert.exception.args[0], "Must provide Maven BinaryPath") + self.assertEqual(err_assert.exception.args[0], "Must provide Maven BinaryPath") def test_build_project(self): maven = SubprocessMaven(maven_binary=self.maven_binary, os_utils=self.os_utils) @@ -55,7 +55,7 @@ def test_build_raises_exception_if_retcode_not_0(self): maven = SubprocessMaven(maven_binary=self.maven_binary, os_utils=self.os_utils) with self.assertRaises(MavenExecutionError) as err: maven.build(self.source_dir) - self.assertEquals(err.exception.args[0], "Maven Failed: Some Error Message") + self.assertEqual(err.exception.args[0], "Maven Failed: Some Error Message") def test_copy_dependency(self): maven = SubprocessMaven(maven_binary=self.maven_binary, os_utils=self.os_utils) @@ -73,4 +73,4 @@ def test_copy_dependency_raises_exception_if_retcode_not_0(self): maven = SubprocessMaven(maven_binary=self.maven_binary, os_utils=self.os_utils) with self.assertRaises(MavenExecutionError) as err: maven.copy_dependency(self.source_dir) - self.assertEquals(err.exception.args[0], "Maven Failed: Some Error Message") + self.assertEqual(err.exception.args[0], "Maven Failed: Some Error Message") diff --git a/tests/unit/workflows/java_maven/test_maven_resolver.py b/tests/unit/workflows/java_maven/test_maven_resolver.py index ca78d624a..ae5d7f803 100644 --- a/tests/unit/workflows/java_maven/test_maven_resolver.py +++ b/tests/unit/workflows/java_maven/test_maven_resolver.py @@ -15,11 +15,11 @@ def test_returns_maven_on_path(self): self.mock_os_utils.which.side_effect = lambda executable, executable_search_paths: [maven_path] resolver = MavenResolver(os_utils=self.mock_os_utils) - self.assertEquals(resolver.exec_paths, [maven_path]) + self.assertEqual(resolver.exec_paths, [maven_path]) def test_throws_value_error_if_no_exec_found(self): self.mock_os_utils.which.side_effect = lambda executable, executable_search_paths: [] resolver = MavenResolver(os_utils=self.mock_os_utils) with self.assertRaises(ValueError) as raised: resolver.exec_paths() - self.assertEquals(raised.exception.args[0], "No Maven executable found!") + self.assertEqual(raised.exception.args[0], "No Maven executable found!")