Skip to content

Commit

Permalink
Add logging to command line args
Browse files Browse the repository at this point in the history
  • Loading branch information
witchard committed Sep 23, 2017
1 parent 7bcf338 commit 327a80f
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
12 changes: 11 additions & 1 deletion grole.py
Original file line number Diff line number Diff line change
Expand Up @@ -416,14 +416,24 @@ def parse_args(args=sys.argv[1:]):
default='.')
parser.add_argument('-n', '--noindex', help='do not show directory indexes',
default=False, action='store_true')
loglevel = parser.add_mutually_exclusive_group()
loglevel.add_argument('-v', '--verbose', help='verbose logging',
default=False, action='store_true')
loglevel.add_argument('-q', '--quiet', help='quiet logging',
default=False, action='store_true')
return parser.parse_args(args)

def main(args=sys.argv[1:]):
"""
Run Grole static file server
"""
logging.basicConfig(level=logging.INFO)
args = parse_args(args)
if args.verbose:
logging.basicConfig(level=logging.DEBUG)
elif args.quiet:
logging.basicConfig(level=logging.ERROR)
else:
logging.basicConfig(level=logging.INFO)
app = Grole()
serve_static(app, '', args.directory, not args.noindex)
app.run(args.address, args.port)
Expand Down
12 changes: 11 additions & 1 deletion test/test_args.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,21 @@ def test_defaults(self):
self.assertEqual(args.port, 1234)
self.assertEqual(args.directory, '.')
self.assertEqual(args.noindex, False)
self.assertEqual(args.verbose, False)
self.assertEqual(args.quiet, False)

def test_override(self):
args = grole.parse_args(['-a', 'foo', '-p', '27', '-d', 'bar', '-n'])
args = grole.parse_args(['-a', 'foo', '-p', '27', '-d', 'bar', '-n', '-v'])
self.assertEqual(args.address, 'foo')
self.assertEqual(args.port, 27)
self.assertEqual(args.directory, 'bar')
self.assertEqual(args.noindex, True)
self.assertEqual(args.verbose, True)
self.assertEqual(args.quiet, False)

def test_error(self):
try:
grole.parse_args(['-q', '-v'])
except SystemExit:
return
self.fail('Did not error on mutually exclusive args')

0 comments on commit 327a80f

Please sign in to comment.