Socket
Socket
Sign inDemoInstall

nose-focus

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nose-focus

Decorator and plugin to make nose focus on specific tests


Maintainers
1

Nose Focus

This provides a nice little decorator and a nose-tests switch to make nose only run the tests that you are focusing on right now.

.. image:: https://travis-ci.org/delfick/nose-focus.png?branch=master :target: https://travis-ci.org/delfick/nose-focus

Changelog

0.2.0

  • No longer support python2, which also means this module now has no dependencies
  • code is formatted with black
  • nose_focus tests are now written using pytest

0.1.4

  • When you focus a class, tests using that class outside that module will also be focused

before 0.1.4

  • Changelog not kept

Usage

Just use the focus decorator in your tests:

.. code-block:: python

from nose_focus import focus

@focus
def test_my_amazing_feature():
    assert_is_awesome(my_feature)

Or set it on your classes:

.. code-block:: python

from nose_focus import focus

@focus
class MyTests(TestCase):
    [...]

Or if you also want to focus on subclasses:

.. code-block:: python

@focus_all
class MyTests(TestCase):
    [..]

class OtherTests(MyTests):
    # Also part of the test because it's parent class has focus_all
    [..]

Or at the module level, set nose_focus to True

.. code-block:: python

nose_focus = True

def test_my_other_amazing_feature():
    assert_great_things()

And use the switch when you run your tests:

.. code-block:: bash

nosetests --with-focus

And the plugin will skip all the tests that we aren't focusing on or set to be ignored.

You may also use nose_focus to run all your tests except those that are ignored.

.. code-block:: python

from nose_focus import focus_ignore

@focus_ignore
def test_that_is_ignored():
    [..]

def test_that_is_not_ignored():
    [..]

And use the --without-ignored to make it run all tests except those that are ignored:

.. code-block:: bash

nosetests --without-ignored

Api

nose_focus.focus(func) Sets nose_focus to True on func

nose_focus.focus_all(kls) Sets nose_focus_all to True on kls. The plugin looks for this attribute in the lineage of base classes for each method when determining to skip them or not.

nose_focus.focus_ignore(thing) Sets nose_focus_ignore to True on thing. The plugin will look for this on each method and the lineage of base classes and will ignore the method if it finds it.

--with-focus nosetests switch Enables the plugin making it only run those tests that are set to focus and are not set to be ignored

--without-ignored nosetests switch Makes the plugin run all tests except those that are set to be ignored

How it works

The plugin uses several want* hooks on a nose plugin to only let through methods that we want to focus on.

A method is focused if it or it's parent class has nose_focus set to a Truthy value or if any class in the lineage of parent classes has nose_focus_all set to a Truthy value and nothing in the lineage has nose_focus_ignore set to a Truthy value.

Installation

Use pip!:

.. code-block:: bash

pip install nose-focus

Or if you're developing it:

.. code-block:: bash

pip install -e .
pip install -e ".[tests]"

Tests

To run the tests in this project, just use the helpful script:

.. code-block:: bash

./test.sh

Or run tox:

.. code-block:: bash

tox

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc