Skip to content

Commit

Permalink
Regarding injected django option: Massage syntax, spelling, and wordi…
Browse files Browse the repository at this point in the history
…ng. Make variable naming slightly more consistent. Updated CHANGELOG. Bumped version.
  • Loading branch information
CleanCut committed Mar 2, 2017
1 parent 08f7f88 commit f5eb6f5
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 20 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,10 @@
# Version 2.7.0
##### 2 March 2017

- When used as a Django test runner, we now inject a `--green-verbosity`
command-line argument that can be used to control green's verbosity level
from Django. Contributed by Anomitra Saha. Resolves #37 and #153.

# Version 2.6.3
##### 20 February 2017

Expand Down
2 changes: 1 addition & 1 deletion green/VERSION
@@ -1 +1 @@
2.6.3
2.7.0
19 changes: 10 additions & 9 deletions green/djangorunner.py
Expand Up @@ -73,18 +73,19 @@ def django_missing():

class DjangoRunner(DiscoverRunner):

def __init__(self, verbose=-1, **kwargs):
def __init__(self, verbosity=-1, **kwargs):

super(DjangoRunner, self).__init__()
self.verbose = verbose
self.verbosity = verbosity

@classmethod
def add_arguments(cls, parser):
parser.add_argument ('--green-verbosity',
action='store', dest='verbose', default=-1,
help="""Used to select a verbosity level for the tests.
Values can range from 1-3 and overrides the configuration
provided in the .green file""")
parser.add_argument (
'--green-verbosity',
action='store', dest='verbosity', default=-1, type=int,
help="""
Green verbosity level for tests. Value should be an integer
that green supports. For example: --green-verbosity 3""")

def run_tests(self, test_labels, extra_tests=None, **kwargs):
"""
Expand All @@ -111,8 +112,8 @@ def run_tests(self, test_labels, extra_tests=None, **kwargs):
test_labels = ['.']

args = mergeConfig(Namespace())
if int(self.verbose) in (1,2,3):
args.verbose = int(self.verbose)
if self.verbosity != -1:
args.verbosity = self.verbosity
args.targets = test_labels
stream = GreenStream(sys.stdout)
suite = loadTargets(args.targets)
Expand Down
15 changes: 5 additions & 10 deletions green/test/test_djangorunner.py
Expand Up @@ -20,9 +20,7 @@ class TestDjangoMissing(unittest.TestCase):

def test_importError(self):
"""
Raises the appropriate exception if Django
is not available
Raises ImportError if Django is not available
"""
self.assertRaises(ImportError, djangorunner.django_missing)

Expand All @@ -41,7 +39,7 @@ def setUp(self):

def test_run_testsWithLabel(self):
"""
Labelled tests run okay
Labeled tests run okay
"""
dr = djangorunner.DjangoRunner()
dr.setup_test_environment = MagicMock()
Expand Down Expand Up @@ -130,7 +128,6 @@ def test_run_coverage(self, mock_loadTargets, mock_run,
self.assertEqual(mock_run.call_args[0][0], 123)

def test_check_verbosity_argument_recognised(self):

"""
Ensure that the python manage.py test command
recognises the --green-verbosity flag
Expand All @@ -146,10 +143,9 @@ def test_check_verbosity_argument_recognised(self):
parser = ArgumentParser()
test_command.add_arguments(parser)
args = parser.parse_args()
self.assertIn('verbose', args)
self.assertIn('verbosity', args)

def test_check_default_verbosity(self):

"""
If no verbosity is passed, default value is set
"""
Expand All @@ -164,10 +160,9 @@ def test_check_default_verbosity(self):
parser = ArgumentParser()
test_command.add_arguments(parser)
args = parser.parse_args()
self.assertEqual(args.verbose,-1)
self.assertEqual(args.verbosity,-1)

def test_run_with_verbosity_flag(self):

"""
Tests should run fine if verbosity is passed
through CLI flag
Expand All @@ -177,7 +172,7 @@ def test_run_with_verbosity_flag(self):
dr.setup_databases = MagicMock()
dr.teardown_databases = MagicMock()
dr.teardown_test_environment = MagicMock()
dr.verbose = 2
dr.verbosity = 2
saved_loadTargets = djangorunner.loadTargets
djangorunner.loadTargets = MagicMock()
self.addCleanup(setattr, djangorunner, 'loadTargets',
Expand Down

0 comments on commit f5eb6f5

Please sign in to comment.