def test_filter_tests_by_tags_invalid_query(self, _project_with_tags): _, project = _project_with_tags.activate() with pytest.raises(tags_manager.InvalidTagExpression) as excinfo: tags_manager.filter_tests_by_tags(project, _project_with_tags.tests, tags=['foo = 2']) expected = ("unknown expression <class '_ast.Assign'>, the only valid " "operators for tag expressions are: 'and', 'or' & 'not'") assert expected in str(excinfo.value)
def _filter_tests_by_tags(self): tests = [] try: tests = tags_manager.filter_tests_by_tags(self.project, self.tests, self.execution.tags) except tags_manager.InvalidTagExpression as e: print('{}: {}'.format(e.__class__.__name__, e)) self.execution.has_failed_tests.value = True else: if len(tests) == 0: print("No tests found with tag(s): {}".format(', '.join(self.execution.tags))) return tests
def test_filter_tests_by_tags_empty_list(self, _project_with_tags): _, project = _project_with_tags.activate() filtered = tags_manager.filter_tests_by_tags(project, _project_with_tags.tests, tags=[]) assert filtered == []
def test_filter_tests_by_tags(self, _project_with_tags): _, project = _project_with_tags.activate() tests = _project_with_tags.tests t = _project_with_tags.t filtered = tags_manager.filter_tests_by_tags(project, tests, ['alfa', 'bravo']) assert filtered == [t.test_alfa_bravo] filtered = tags_manager.filter_tests_by_tags(project, tests, ['bravo']) assert sorted(filtered) == sorted([t.test_alfa_bravo, t.test_bravo_charlie]) filtered = tags_manager.filter_tests_by_tags(project, tests, ['alfa and bravo']) assert filtered == [t.test_alfa_bravo] filtered = tags_manager.filter_tests_by_tags(project, tests, ['"alfa" and "bravo"']) assert filtered == [t.test_alfa_bravo] filtered = tags_manager.filter_tests_by_tags(project, tests, ['alfa or bravo']) assert sorted(filtered) == sorted([t.test_alfa_bravo, t.test_bravo_charlie]) filtered = tags_manager.filter_tests_by_tags(project, tests, ['bravo and not alfa']) assert filtered == [t.test_bravo_charlie] filtered = tags_manager.filter_tests_by_tags(project, tests, ['(alfa or bravo) and charlie']) assert filtered == [t.test_bravo_charlie] filtered = tags_manager.filter_tests_by_tags(project, tests, ['bravo or delta and not charlie']) assert sorted(filtered) == sorted([t.test_alfa_bravo, t.test_bravo_charlie, t.test_delta_echo_foxtrot]) filtered = tags_manager.filter_tests_by_tags(project, tests, ['(bravo or delta) and not charlie']) assert sorted(filtered) == sorted([t.test_alfa_bravo, t.test_delta_echo_foxtrot]) filtered = tags_manager.filter_tests_by_tags(project, tests, ["fox trot"]) assert sorted(filtered) == sorted([t.test_delta_echo_foxtrot]) filtered = tags_manager.filter_tests_by_tags(project, tests, ["delta", "fox trot"]) assert sorted(filtered) == sorted([t.test_delta_echo_foxtrot]) filtered = tags_manager.filter_tests_by_tags(project, tests, ['"delta" or "fox trot"']) assert sorted(filtered) == sorted([t.test_delta_echo_foxtrot]) filtered = tags_manager.filter_tests_by_tags(project, tests, ['bravo and echo']) assert filtered == []