Skip to content

Commit e5a90e6

Browse files
authored
Chore | Migrate to GitHub actions (#17)
1 parent 6ec3e61 commit e5a90e6

File tree

7 files changed

+603
-323
lines changed

7 files changed

+603
-323
lines changed

.editorconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
trim_trailing_whitespace = true
6+
end_of_line = lf
7+
insert_final_newline = true
8+
9+
[*.{yml,yaml}]
10+
indent_style = space
11+
indent_size = 2
12+
13+
[*.{markdown,md}]
14+
trim_trailing_whitespace = false

.github/workflows/python.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: python
2+
on: [push]
3+
4+
jobs:
5+
build:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- uses: actions/checkout@v4
9+
- name: Set up Python
10+
uses: actions/setup-python@v4
11+
with:
12+
python-version: '3.9'
13+
14+
- name: Install dependencies
15+
run: python -m pip install --upgrade pip poetry
16+
17+
- name: Install poetry
18+
run: poetry install
19+
20+
- name: Run linter
21+
run: make lint
22+
23+
- name: Run tests
24+
run: make tests
25+
26+
- name: Upload coverage to Codecov
27+
uses: codecov/codecov-action@v3

.travis.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ setup: ## Create a virtual environment for the project and installs all dependen
44

55
.PHONY: format
66
format: ## Automatically format the .py files with Black and Isort
7-
poetry run isort --recursive .
7+
poetry run isort .
88
poetry run black .
99

1010
.PHONY: lint

poetry.lock

Lines changed: 537 additions & 281 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ include = [
1313
"LICENSE",
1414
]
1515
[tool.poetry.dependencies]
16-
python = "^3.7"
16+
python = "^3.9"
1717
boto3 = "^1.9"
1818

1919
[tool.poetry.dev-dependencies]
20-
pytest = "^3.0"
21-
mypy = "^0.720.0"
22-
isort = "^4.3"
23-
black = "==19.3b0"
24-
flake8 = "^3.7"
25-
pytest-cov = "^2.7"
20+
pytest = "^7.4"
21+
mypy = "^1.7"
22+
isort = "^5.12"
23+
black = "^23.11.0"
24+
flake8 = "^6.1"
25+
pytest-cov = "^4.0"
2626
codecov = "^2.0"
2727

2828
[build-system]

tests/test_python_aws_ssm.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@
99
)
1010

1111

12-
def test_version():
12+
def test_version() -> None:
1313
assert __version__ == "1.0.0"
1414

1515

1616
class TestGetParameters(TestCase):
17-
def setUp(self):
17+
def setUp(self) -> None:
1818
self.parameter_store = ParameterStore(client=MagicMock())
1919

20-
def tearDown(self):
20+
def tearDown(self) -> None:
2121
pass
2222

23-
def test_get_parameters_keys_are_mapped(self):
23+
def test_get_parameters_keys_are_mapped(self) -> None:
2424
self.parameter_store.client.get_parameters.return_value = {
2525
"Parameters": [
2626
{"Name": "foo_ssm_key_1", "Value": "foo_ssm_value_1"},
@@ -47,7 +47,7 @@ def test_get_parameters_keys_are_mapped(self):
4747
WithDecryption=True,
4848
)
4949

50-
def test_get_parameters_unknown_keys_are_ignored(self):
50+
def test_get_parameters_unknown_keys_are_ignored(self) -> None:
5151
self.parameter_store.client.get_parameters.return_value = {
5252
"Parameters": [
5353
{"Name": "foo_ssm_key_1", "Value": "foo_ssm_value_1"},
@@ -59,14 +59,15 @@ def test_get_parameters_unknown_keys_are_ignored(self):
5959

6060
self.assertEqual({"foo_ssm_key_1": "foo_ssm_value_1"}, secrets)
6161

62-
def test_get_parameters_aws_errors_are_not_caught(self):
62+
def test_get_parameters_aws_errors_are_not_caught(self) -> None:
6363
expected_error = Exception("Unexpected AWS error!")
6464
self.parameter_store.client.get_parameters.side_effect = expected_error
6565

6666
with self.assertRaises(Exception, msg="Unexpected AWS error!"):
6767
self.parameter_store.get_parameters(["/key"])
68+
return None
6869

69-
def test_get_parameters_by_path_keys_are_mapped(self):
70+
def test_get_parameters_by_path_keys_are_mapped(self) -> None:
7071
self.parameter_store.client.get_parameters_by_path.return_value = {
7172
"Parameters": [
7273
{"Name": "/bar/env/foo_ssm_key_1", "Value": "foo_ssm_value_1"},
@@ -84,7 +85,7 @@ def test_get_parameters_by_path_keys_are_mapped(self):
8485
Path="/bar/env/", Recursive=False, WithDecryption=True
8586
)
8687

87-
def test_get_parameters_by_path_are_stripped_of_leading_slashes(self):
88+
def test_get_parameters_by_path_are_stripped_of_leading_slashes(self) -> None:
8889
"""
8990
Leading slashes of parameters are stripped consistently.
9091
@@ -113,7 +114,7 @@ def test_get_parameters_by_path_are_stripped_of_leading_slashes(self):
113114
Path=parameters_path, Recursive=False, WithDecryption=True
114115
)
115116

116-
def test_get_parameters_by_path_recursive_not_nested(self):
117+
def test_get_parameters_by_path_recursive_not_nested(self) -> None:
117118
self.parameter_store.client.get_parameters_by_path.return_value = {
118119
"Parameters": [
119120
{"Name": "/bar/env/foo_ssm_key_1", "Value": "foo_ssm_value_1"},
@@ -136,7 +137,7 @@ def test_get_parameters_by_path_recursive_not_nested(self):
136137
Path="/bar/", Recursive=True, WithDecryption=True
137138
)
138139

139-
def test_get_parameters_by_path_recursive_nested(self):
140+
def test_get_parameters_by_path_recursive_nested(self) -> None:
140141
self.parameter_store.client.get_parameters_by_path.return_value = {
141142
"Parameters": [
142143
{"Name": "/bar/env/foo_ssm_key_1", "Value": "foo_ssm_value_1"},
@@ -161,12 +162,12 @@ def test_get_parameters_by_path_recursive_nested(self):
161162
Path="/bar/", Recursive=True, WithDecryption=True
162163
)
163164

164-
def test_get_parameter_by_path_aws_errors_are_not_caught(self):
165+
def test_get_parameter_by_path_aws_errors_are_not_caught(self) -> None:
165166
expected_error = Exception("Unexpected AWS error!")
166167
self.parameter_store.client.get_parameters_by_path.side_effect = expected_error
167168

168169
with self.assertRaises(Exception, msg="Unexpected AWS error!"):
169-
self.parameter_store.get_parameters_by_path(["/key"])
170+
self.parameter_store.get_parameters_by_path("/key")
170171

171172
def test_get_required_parameters_by_path_can_be_asserted(self) -> None:
172173
"""
@@ -190,7 +191,9 @@ def test_get_required_parameters_by_path_can_be_asserted(self) -> None:
190191
assert len(exc_info.exception.parameter_names) == 2
191192
assert sorted(exc_info.exception.parameter_names) == sorted(["baz", "foo/bar"])
192193

193-
def test_required_parameters_by_path_are_checked_before_recursive_nested(self):
194+
def test_required_parameters_by_path_are_checked_before_recursive_nested(
195+
self,
196+
) -> None:
194197
self.parameter_store.client.get_parameters_by_path.return_value = {
195198
"Parameters": [
196199
{"Name": "/bar/env/foo_ssm_key_1", "Value": "foo_ssm_value_1"},
@@ -218,7 +221,7 @@ def test_required_parameters_by_path_are_checked_before_recursive_nested(self):
218221
Path="/bar/", Recursive=True, WithDecryption=True
219222
)
220223

221-
def test_requesting_invalid_parameters(self):
224+
def test_requesting_invalid_parameters(self) -> None:
222225
"""Assert requesting invalid parameters results in an exception."""
223226
self.parameter_store.client.get_parameters.return_value = {
224227
"Parameters": [{"Name": "/test/foo", "Value": "foo_ssm_value_1"}],

0 commit comments

Comments
 (0)