All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.py.rules.python.S5918.html Maven / Gradle / Ivy

There is a newer version: 4.23.0.17664
Show newest version

Why is this an issue?

Test frameworks provide a mechanism to skip tests if their prerequisites are not met, by either calling dedicated methods (e.g: unittest.TestCase.skipTest, pytest.skip, …​) or using decorators (e.g: unittest.skip, pytest.mark.skip, …​)

Using a return statement instead will make the test succeed, even though no assertion has been performed. It is therefore better to flag the test as skipped in such situation.

This rule raises an issue when a return is performed conditionally at the beginning of a test method.

No issue will be raised if the return is unconditional as {rule:python:S1763} already raises an issue in such case.

The supported frameworks are Pytest and Unittest.

Noncompliant code example

import unittest
class MyTest(unittest.TestCase):

    def test_something(self):
        if not external_resource_available():
            return  # Noncompliant
        self.assertEqual(foo(), 42)

Compliant solution

import unittest
class MyTest(unittest.TestCase):

    def test_something(self):
        if not external_resource_available():
            self.skipTest("prerequisite not met")
        self.assertEqual(foo(), 42)

Resources





© 2015 - 2024 Weber Informatics LLC | Privacy Policy