Skip to content

Commit 1197c65

Browse files
committed
Cleanups
1 parent 72bfcb2 commit 1197c65

File tree

7 files changed

+40
-23
lines changed

7 files changed

+40
-23
lines changed

.github/workflows/lint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
- name: Install lint dependencies
1818
run: |
1919
python -m pip install --upgrade pip
20+
pip install --editable .
2021
pip install '.[lint]'
2122
- name: Analysing the code with ruff
2223
run: |

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Install test dependencies
1818
run: |
1919
python -m pip install --upgrade pip
20-
pip install '.[dev]'
20+
pip install --editable .
2121
- name: Run unit tests
2222
run: |
2323
python -m unittest discover -v -s src/

.pre-commit-config.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ repos:
2828
rev: 'v1.4.0'
2929
hooks:
3030
- id: mypy
31-
args: ['--install-types', '--non-interactive', 'src/']
31+
args: ['--install-types', '--non-interactive']
3232
additional_dependencies:
3333
- "Jinja2>=3.1.2"
3434
- "PyYAML>=6.0"
@@ -37,7 +37,10 @@ repos:
3737
hooks:
3838
- id: unittest
3939
name: unittest
40-
entry: python -m unittest discover
40+
entry: python -m unittest discover -v -s src/
41+
additional_dependencies:
42+
- "Jinja2>=3.1.2"
43+
- "PyYAML>=6.0"
4144
language: python
4245
'types': [python]
4346
pass_filenames: false

examples/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ This folder contains configuration examples for Beku.
44

55
## Test Suites
66

7+
Test suites are an optional property of the `test-definition.yaml` file. If no test suite is explicitly defined,
8+
a `default` test suite is generated that selects all test definitons without patching any dimensions.
9+
710
The folder `suites` contains an example on how to configure test suites.
811

912
The file `suites/test/test-definition.yaml` shows example configurations for two test suites:

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ dependencies = [
1818
]
1919
[project.optional-dependencies]
2020
lint = ['ruff==0.0.275', 'mypy==1.4.0']
21-
dev = ['pre-commit==3.0.3', 'parameterized==0.9.0']
2221

2322
[project.scripts]
2423
beku = "beku.main:main"

src/beku/kuttl.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,11 +337,14 @@ def renderer_from_stream(stream) -> List[EffectiveTestSuite]:
337337
TestDefinition(t["name"], t["dimensions"]) for t in tin["tests"]
338338
]
339339

340-
test_suites = [TestSuite(name="default", select=[], patches=[])]
340+
test_suites = []
341341
if "suites" in tin:
342342
test_suites.extend([
343343
TestSuite.from_dict(t) for t in tin["suites"]
344344
])
345+
else:
346+
test_suites.append(TestSuite(name="default", select=[], patches=[]))
347+
345348
return _resolve_effective_test_suites(dimensions, test_def, test_suites)
346349

347350

src/test/test_reneder_from_stream.py renamed to src/test/test_render_from_stream.py

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,24 @@
66

77
class TestRenderFromStream(unittest.TestCase):
88

9+
def test_default_test_suite(self):
10+
fixture = textwrap.dedent("""
11+
---
12+
dimensions:
13+
- name: druid
14+
values:
15+
- 24.0.0-stackable0.0.0-dev
16+
tests:
17+
- name: smoke
18+
dimensions:
19+
- druid""")
20+
ets = renderer_from_stream(fixture)
21+
expected = EffectiveTestSuite(name='default',
22+
test_cases=[TestCase(name='smoke',
23+
values={'druid': '24.0.0-stackable0.0.0-dev'})])
24+
self.assertEqual(
25+
expected, ets[0], "No select, patch implicitly selected tests smoke")
26+
927
def test_patch_implicit_select(self):
1028
fixture = textwrap.dedent("""
1129
---
@@ -30,7 +48,7 @@ def test_patch_implicit_select(self):
3048
test_cases=[TestCase(name='smoke',
3149
values={'druid': '24.0.0-stackable0.0.0-dev'})])
3250
self.assertEqual(
33-
expected, ets[1], "No select, patch implicitly selected tests smoke")
51+
expected, ets[0], "No select, patch implicitly selected tests smoke")
3452

3553
def test_patch_ignores_test_that_was_not_selected(self):
3654
fixture = textwrap.dedent("""
@@ -59,7 +77,7 @@ def test_patch_ignores_test_that_was_not_selected(self):
5977

6078
ets = renderer_from_stream(fixture)
6179

62-
self.assertEqual(["resources"], list(dict.fromkeys([tc.name for tc in ets[1].test_cases])),
80+
self.assertEqual(["resources"], list(dict.fromkeys([tc.name for tc in ets[0].test_cases])),
6381
"Only the [resources] test definition was selected.")
6482

6583
def test_patch_the_same_dimension_twice(self):
@@ -89,7 +107,7 @@ def test_patch_the_same_dimension_twice(self):
89107
expected = EffectiveTestSuite(name='two-patches-on-the-same-test',
90108
test_cases=[TestCase(name='smoke',
91109
values={'druid': '26.0.0-stackable0.0.0-dev'})])
92-
self.assertEqual(expected, ets[1], "Last patch wins")
110+
self.assertEqual(expected, ets[0], "Last patch wins")
93111

94112
def test_patch_the_same_test_twice(self):
95113
fixture = textwrap.dedent("""
@@ -120,7 +138,7 @@ def test_patch_the_same_test_twice(self):
120138
expected = EffectiveTestSuite(name='two-patches-on-the-same-test',
121139
test_cases=[TestCase(name='smoke',
122140
values={'druid': '26.0.0-stackable0.0.0-dev'})])
123-
self.assertEqual(expected, ets[1], "Last patch wins")
141+
self.assertEqual(expected, ets[0], "Last patch wins")
124142

125143
def test_patch_str_expression(self):
126144
fixture = textwrap.dedent("""
@@ -147,7 +165,7 @@ def test_patch_str_expression(self):
147165
expected = EffectiveTestSuite(name='select-25.0.0',
148166
test_cases=[TestCase(name='smoke',
149167
values={'druid': '25.0.0-stackable0.0.0-dev'})])
150-
self.assertEqual(expected, ets[1], "String expression works")
168+
self.assertEqual(expected, ets[0], "String expression works")
151169

152170
def test_resolve_explicit_select(self):
153171
fixture = textwrap.dedent("""
@@ -188,14 +206,9 @@ def test_resolve_explicit_select(self):
188206
- name: druid
189207
expr: last""")
190208
ets = renderer_from_stream(fixture)
191-
# pprint(ets[0].test_cases)
192-
self.assertEqual(["default", "latest"], [
193-
e.name for e in ets], "Two effective test suite resolved.")
194-
self.assertEqual(7, len(ets[0].test_cases),
195-
"The [default] test suite has 7 test cases.")
196-
self.assertEqual(3, len(ets[1].test_cases),
209+
self.assertEqual(3, len(ets[0].test_cases),
197210
"The [latest] test suite has 3 test cases.")
198-
self.assertEqual(["smoke", "resources"], list(dict.fromkeys([tc.name for tc in ets[1].test_cases])),
211+
self.assertEqual(["smoke", "resources"], list(dict.fromkeys([tc.name for tc in ets[0].test_cases])),
199212
"Two test definitions were selected.")
200213

201214
def test_resolve_select_all(self):
@@ -232,12 +245,7 @@ def test_resolve_select_all(self):
232245
- dimensions:
233246
- expr: last""")
234247
ets = renderer_from_stream(fixture)
235-
# pprint(ets[0].test_cases)
236-
self.assertEqual(["default", "latest"], [
237-
e.name for e in ets], "Two effective test suite resolved.")
238-
self.assertEqual(9, len(ets[0].test_cases),
239-
"The [default] test suite has 9 test cases.")
240-
self.assertEqual(2, len(ets[1].test_cases),
248+
self.assertEqual(2, len(ets[0].test_cases),
241249
"The [latest] test suite has 2 test cases.")
242250
self.assertEqual(["smoke", "resources"], list(dict.fromkeys([tc.name for tc in ets[0].test_cases])),
243251
"Two test definitions were selected.")

0 commit comments

Comments
 (0)