Python auto test runner
Project description
PyGuard
A python auto test runner inspired by the guard project.
A simple example that runs all the tests when a file is modified would look something like this:
from filewatch import file_updated_subject, Watcher
from pyguard import guardian, GuardianObserver, RegexRule, RuleManager
manager = RuleManager(cmd='py.test pyguard')
manager.register_rules(
RegexRule(regex=r'.*/pyguard/.*'),
)
guardian.register_manager(manager)
# Set up our file observer
file_updated_subject.register_observer(GuardianObserver())
# Get our watcher going
watcher = Watcher()
watcher.run()
Any RuleManager that you create will execute the given command whenever a registered rule matches a supplied file path.
To make things a little more granular, we can register a different set of rules. i.e.
...
manager = RuleManager(cmd='py.test pyguard/tests/test_{test_name}.py')
manager.register_rules(
RegexRule(regex=r'.*/rules.py', cmd_augmentation={'test_name' : 'rules'}),
RegexRule(regex=r'.*/core.py', cmd_augmentation={'test_name' : 'guardian'}),
)
guardian.register_manager(manager)
...
To enforce a particular naming convention we can take things even further using named groups within the regex itself. If we have say a views.py and we know that the tests for said views exist in test_views.py, then we can simple use:
...
manager = RuleManager(cmd='py.test pyguard/tests/test_{test_name}.py')
manager.register_rules(
RegexRule(regex=r'.*/(?P<test_name>views).py'),
)
guardian.register_manager(manager)
...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyguard-0.0.4.tar.gz
(2.7 kB
view hashes)