diff --git a/changes/cli.py b/changes/cli.py index 09c0fd1..7c87f47 100644 --- a/changes/cli.py +++ b/changes/cli.py @@ -32,6 +32,7 @@ increment options above, this option stops `changes` from confirming the new version number. --module-name= If your module and package aren't the same + --requirements= Requirements file name (default: requirements.txt) --debug Debug output. The commands do the following: @@ -51,7 +52,6 @@ import changes from changes import config, probe, util, version from changes.changelog import changelog -from changes.config import arguments from changes.packaging import install, upload, pypi from changes.vcs import tag, commit_version_change from changes.verification import run_tests diff --git a/changes/probe.py b/changes/probe.py index 0783700..6faa7f3 100644 --- a/changes/probe.py +++ b/changes/probe.py @@ -3,10 +3,12 @@ import sh -from changes import attributes +from changes import attributes, config log = logging.getLogger(__name__) +REQUIREMENTS = 'requirements.txt' + def has_requirement(dependency, requirements_contents): return any( @@ -29,9 +31,18 @@ def probe_project(module_name): log.info('setup.py? %s', setup) # `requirements.txt` - has_requirements = exists('requirements.txt') - log.info('requirements.txt? %s', setup) - requirements_contents = open('requirements.txt').readlines() + requirements = config.arguments.get('--requirements') or REQUIREMENTS + has_requirements = exists(requirements) + log.info('%s? %s', requirements, has_requirements) + if has_requirements: + requirements_contents = open(requirements).readlines() + + # supports executing tests with `nosetests` or `tox` + runs_tests = ( + has_requirement('nose', requirements_contents) or + has_requirement('tox', requirements_contents) + ) + log.info('Runs tests? %s' % runs_tests) # `CHANGELOG.md` has_changelog = exists('CHANGELOG.md') @@ -46,12 +57,5 @@ def probe_project(module_name): ) log.info('Has module metadata? %s', has_metadata) - # supports executing tests with `nosetests` or `tox` - runs_tests = ( - has_requirement('nose', requirements_contents) or - has_requirement('tox', requirements_contents) - ) - log.info('Runs tests? %s' % runs_tests) - return (on_github and setup and has_changelog and has_metadata and has_requirements and runs_tests) diff --git a/tests/test_probe.py b/tests/test_probe.py index 78cc8f2..0881138 100644 --- a/tests/test_probe.py +++ b/tests/test_probe.py @@ -1,4 +1,4 @@ -from changes import probe +from changes import config, probe from . import BaseTestCase @@ -6,3 +6,7 @@ class ProbeTestCase(BaseTestCase): def test_probe_project(self): self.assertTrue(probe.probe_project(self.module_name)) + + def test_probe_with_alt_requirements(self): + config.arguments['--requirements'] = 'test-requirements.txt' + self.assertFalse(probe.probe_project(self.module_name))