Skip to content

Commit b64290a

Browse files
committed
Refactor CI to include ERROR grep
1 parent 53eb869 commit b64290a

3 files changed

Lines changed: 64 additions & 54 deletions

File tree

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/bash
2+
set -e
3+
4+
echo "Comparing actual test failures with expected failures..."
5+
6+
# Enable globstar for recursive globbing
7+
shopt -s globstar
8+
9+
# Extract actual failures from test reports
10+
actual_failures=$(grep -E "(FAILED tests|ERROR tests)" reports/**/*.txt | awk '{print $2}' | sort)
11+
12+
# Read expected failures
13+
expected_failures=$(sort .github/expected_failures.txt)
14+
15+
echo "Expected Failures:"
16+
echo "$expected_failures"
17+
echo ""
18+
echo "Actual Failures:"
19+
echo "$actual_failures"
20+
echo ""
21+
22+
# Identify unexpected failures (in actual but not in expected)
23+
unexpected_failures=$(comm -13 <(echo "$expected_failures") <(echo "$actual_failures"))
24+
25+
# Identify missing expected failures (in expected but not in actual)
26+
missing_failures=$(comm -23 <(echo "$expected_failures") <(echo "$actual_failures"))
27+
28+
# Initialize exit code
29+
exit_code=0
30+
31+
if [ -n "$unexpected_failures" ]; then
32+
echo "Unexpected test failures detected:"
33+
echo "$unexpected_failures"
34+
exit_code=1
35+
fi
36+
37+
if [ -n "$missing_failures" ]; then
38+
echo "::warning::Expected test failures that did not occur (they passed):"
39+
echo "$missing_failures"
40+
exit_code=1
41+
fi
42+
43+
if [ $exit_code -eq 0 ]; then
44+
echo "All failed tests are expected, and all expected failures have occurred."
45+
else
46+
echo "Verification failed: There are unexpected or missing test failures."
47+
fi
48+
49+
exit $exit_code

.github/workflows/ci.yml

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -139,43 +139,4 @@ jobs:
139139
path: reports/
140140

141141
- name: Compare Actual Failures with Expected Failures
142-
run: |
143-
shopt -s globstar
144-
actual_failures=$(grep "FAILED tests" reports/**/*.txt | awk '{print $2}' | sort)
145-
expected_failures=$(sort .github/expected_failures.txt)
146-
147-
echo "Expected Failures:"
148-
echo "$expected_failures"
149-
echo ""
150-
echo "Actual Failures:"
151-
echo "$actual_failures"
152-
echo ""
153-
154-
# Identify unexpected failures
155-
unexpected_failures=$(comm -13 <(echo "$expected_failures") <(echo "$actual_failures"))
156-
157-
# Identify missing expected failures
158-
missing_failures=$(comm -23 <(echo "$expected_failures") <(echo "$actual_failures"))
159-
160-
# Initialize exit code
161-
exit_code=0
162-
163-
if [ -n "$unexpected_failures" ]; then
164-
echo "Unexpected test failures detected:"
165-
echo "$unexpected_failures"
166-
exit_code=1
167-
fi
168-
169-
if [ -n "$missing_failures" ]; then
170-
echo "Expected test failures that did not occur (they passed):"
171-
echo "$missing_failures"
172-
exit_code=1
173-
fi
174-
175-
if [ $exit_code -eq 0 ]; then
176-
echo "All failed tests are expected, and all expected failures have occurred."
177-
else
178-
echo "Verification failed: There are unexpected or missing test failures."
179-
fi
180-
181-
exit $exit_code
142+
run: bash .github/scripts/compare_test_failures.sh

tests/hooks/test_model_hooks.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,13 @@ def check_hooks(self, state, project, host, count=1):
127127

128128

129129
class TestPrePostModelHooksDremio(BaseTestPrePost):
130-
@pytest.fixture(scope="class")
131-
def unique_schema(self, request, prefix) -> str:
132-
test_file = request.module.__name__
133-
# We only want the last part of the name
134-
test_file = test_file.split(".")[-1]
135-
unique_schema = f"{BUCKET}.{prefix}_{test_file}"
136-
return unique_schema
130+
# @pytest.fixture(scope="class")
131+
# def unique_schema(self, request, prefix) -> str:
132+
# test_file = request.module.__name__
133+
# # We only want the last part of the name
134+
# test_file = test_file.split(".")[-1]
135+
# unique_schema = f"{BUCKET}.{prefix}_{test_file}"
136+
# return unique_schema
137137

138138
@pytest.fixture(scope="class")
139139
def project_config_update(self):
@@ -308,13 +308,13 @@ def models(self):
308308
class TestPrePostModelHooksOnSeedsPlusPrefixedDremio(
309309
TestPrePostModelHooksOnSeedsDremio
310310
):
311-
@pytest.fixture(scope="class")
312-
def unique_schema(self, request, prefix) -> str:
313-
test_file = request.module.__name__
314-
# We only want the last part of the name
315-
test_file = test_file.split(".")[-1]
316-
unique_schema = f"{BUCKET}.{prefix}_{test_file}"
317-
return unique_schema
311+
# @pytest.fixture(scope="class")
312+
# def unique_schema(self, request, prefix) -> str:
313+
# test_file = request.module.__name__
314+
# # We only want the last part of the name
315+
# test_file = test_file.split(".")[-1]
316+
# unique_schema = f"{BUCKET}.{prefix}_{test_file}"
317+
# return unique_schema
318318

319319
@pytest.fixture(scope="class")
320320
def project_config_update(self):

0 commit comments

Comments
 (0)