Skip to content
This repository has been archived by the owner on Jul 25, 2024. It is now read-only.

Commit

Permalink
Merge pull request #1132 from roxell/fix-result-skip
Browse files Browse the repository at this point in the history
api: test_rest: result: add skip filter
  • Loading branch information
chaws authored Mar 25, 2024
2 parents 11ab164 + 68e0170 commit 6a47536
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion squad/api/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ class TestFilter(filters.FilterSet):

class Meta:
model = Test
fields = {'result': ['exact', 'in'],
fields = {'result': ['exact', 'in', 'isnull'],
'suite_id': ['exact', 'in'],
'environment_id': ['exact', 'in'],
'metadata_id': ['exact', 'in'],
Expand Down
28 changes: 28 additions & 0 deletions test/api/test_rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ def setUp(self):
suite, _ = testrun.build.project.suites.get_or_create(slug=s)
metadata, _ = models.SuiteMetadata.objects.get_or_create(suite=s, name=t, kind='test')
testrun.tests.create(suite=suite, result=r, metadata=metadata, build=testrun.build, environment=testrun.environment)
testrun.tests.create(suite=suite, result=None, metadata=metadata, build=testrun.build, environment=testrun.environment)
testrun.tests.create(suite=suite, result=False, has_known_issues=True, metadata=metadata, build=testrun.build, environment=testrun.environment)

metric_suite = 'mymetricsuite'
suite, _ = self.project.suites.get_or_create(slug=metric_suite)
Expand Down Expand Up @@ -1001,6 +1003,32 @@ def test_tests_filter_by_suite_id(self):
for test in data['results']:
self.assertIn('/%s/' % suite.id, test['suite'])

def test_tests_filter_by_result_pass(self):
data = self.hit('/api/tests/?result=true')
self.assertEqual(list, type(data['results']))
self.assertEqual(50, len(data['results']))
for test in data['results']:
self.assertTrue(test['result'])

def test_tests_filter_by_result_fail(self):
data = self.hit('/api/tests/?result=false')
self.assertEqual(list, type(data['results']))
self.assertEqual(50, len(data['results']))
for test in data['results']:
self.assertFalse(test['result'])

def test_tests_filter_by_result_xfail(self):
data = self.hit('/api/tests/?result=false&has_known_issues=true')
self.assertEqual(list, type(data['results']))
self.assertEqual(1, len(data['results']))
self.assertTrue(data['results'][0]['has_known_issues'])

def test_tests_filter_by_result_skip(self):
data = self.hit('/api/tests/?result__isnull=true')
self.assertEqual(list, type(data['results']))
self.assertEqual(1, len(data['results']))
self.assertIsNone(data['results'][0]['result'])

def test_tests_with_page_size(self):
data = self.hit('/api/tests/?limit=2')
self.assertEqual(list, type(data['results']))
Expand Down

0 comments on commit 6a47536

Please sign in to comment.