skip to navigation
skip to content

Not Logged In

nose_focus 0.1.1

Decorator and plugin to make nose focus on specific tests

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.

Usage

Just use the focus decorator in your tests:

from nose_focus import focus

@focus
def test_my_amazing_feature():
    assert_is_awesome(my_feature)

Or set it on your classes:

from nose_focus import focus

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

Or if you also want to focus on subclasses:

@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

nose_focus = True

def test_my_other_amazing_feature():
    assert_great_things()

And use the switch when you run your tests:

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.

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:

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!:

pip install nose-focus

Or if you’re developing it:

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

Tests

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

./test.sh

Or run tox:

tox
 
File Type Py Version Uploaded on Size
nose_focus-0.1.1.tar.gz (md5) Source 2014-06-09 3KB
  • Downloads (All Versions):
  • 5 downloads in the last day
  • 35 downloads in the last week
  • 50 downloads in the last month