浏览代码

Merge pull request #322 from dnephin/fix_cli_for_py26

Fix cli for python 2.6
Chris Corbyn 11 年之前
父节点
当前提交
0dc55fda45
共有 4 个文件被更改,包括 28 次插入14 次删除
  1. 1 0
      .gitignore
  2. 13 10
      fig/cli/main.py
  3. 10 1
      tests/unit/cli_test.py
  4. 4 3
      tox.ini

+ 1 - 0
.gitignore

@@ -1,5 +1,6 @@
 *.egg-info
 *.pyc
+.tox
 /build
 /dist
 /docs/_site

+ 13 - 10
fig/cli/main.py

@@ -24,16 +24,7 @@ log = logging.getLogger(__name__)
 
 
 def main():
-    console_handler = logging.StreamHandler(stream=sys.stderr)
-    console_handler.setFormatter(logging.Formatter())
-    console_handler.setLevel(logging.INFO)
-    root_logger = logging.getLogger()
-    root_logger.addHandler(console_handler)
-    root_logger.setLevel(logging.DEBUG)
-
-    # Disable requests logging
-    logging.getLogger("requests").propagate = False
-
+    setup_logging()
     try:
         command = TopLevelCommand()
         command.sys_dispatch()
@@ -56,6 +47,18 @@ def main():
         sys.exit(1)
 
 
+def setup_logging():
+    console_handler = logging.StreamHandler(sys.stderr)
+    console_handler.setFormatter(logging.Formatter())
+    console_handler.setLevel(logging.INFO)
+    root_logger = logging.getLogger()
+    root_logger.addHandler(console_handler)
+    root_logger.setLevel(logging.DEBUG)
+
+    # Disable requests logging
+    logging.getLogger("requests").propagate = False
+
+
 # stolen from docopt master
 def parse_doc_section(name, source):
     pattern = re.compile('^([^\n]*' + name + '[^\n]*\n?(?:[ \t].*?(?:\n|$))*)',

+ 10 - 1
tests/unit/cli_test.py

@@ -1,9 +1,13 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
+import logging
+import os
 from .. import unittest
+
+from fig.cli import main
 from fig.cli.main import TopLevelCommand
 from fig.packages.six import StringIO
-import os
+
 
 class CLITestCase(unittest.TestCase):
     def test_default_project_name(self):
@@ -35,3 +39,8 @@ class CLITestCase(unittest.TestCase):
         command = TopLevelCommand()
         with self.assertRaises(SystemExit):
             command.dispatch(['-h'], None)
+
+    def test_setup_logging(self):
+        main.setup_logging()
+        self.assertEqual(logging.getLogger().level, logging.DEBUG)
+        self.assertEqual(logging.getLogger('requests').propagate, False)

+ 4 - 3
tox.ini

@@ -2,7 +2,8 @@
 envlist = py26,py27,py32,py33,pypy
 
 [testenv]
+deps =
+    -rrequirements.txt
+    -rrequirements-dev.txt
 commands =
-	pip install -e {toxinidir}
-	pip install -e {toxinidir}[test]
-	python setup.py test
+    nosetests {posargs}