summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/scripts/pserve.py7
-rw-r--r--pyramid/tests/test_scripts/test_pserve.py23
2 files changed, 26 insertions, 4 deletions
diff --git a/pyramid/scripts/pserve.py b/pyramid/scripts/pserve.py
index dcc095d1a..ea2a4ae09 100644
--- a/pyramid/scripts/pserve.py
+++ b/pyramid/scripts/pserve.py
@@ -628,12 +628,11 @@ def live_pidfile(pidfile): # pragma: no cover
return pid
return None
-def read_pidfile(filename): # pragma: no cover
+def read_pidfile(filename):
if os.path.exists(filename):
try:
- f = open(filename)
- content = f.read()
- f.close()
+ with open(filename) as f:
+ content = f.read()
return int(content.strip())
except (ValueError, IOError):
return None
diff --git a/pyramid/tests/test_scripts/test_pserve.py b/pyramid/tests/test_scripts/test_pserve.py
index 1b45a5d90..d7b252d92 100644
--- a/pyramid/tests/test_scripts/test_pserve.py
+++ b/pyramid/tests/test_scripts/test_pserve.py
@@ -204,6 +204,29 @@ class TestPServeCommand(unittest.TestCase):
inst = self._makeOne('development.ini')
self.assertRaises(ValueError, inst.parse_vars, vars)
+class Test_read_pidfile(unittest.TestCase):
+ def _callFUT(self, filename):
+ from pyramid.scripts.pserve import read_pidfile
+ return read_pidfile(filename)
+
+ def test_read_pidfile(self):
+ filename = tempfile.mktemp()
+ try:
+ with open(filename, 'w') as f:
+ f.write('12345')
+ result = self._callFUT(filename)
+ self.assertEqual(result, 12345)
+ finally:
+ os.remove(filename)
+
+ def test_read_pidfile_no_pid_file(self):
+ result = self._callFUT('some unknown path')
+ self.assertEqual(result, None)
+
+ def test_read_pidfile_not_a_number(self):
+ result = self._callFUT(__file__)
+ self.assertEqual(result, None)
+
class Test_main(unittest.TestCase):
def _callFUT(self, argv):
from pyramid.scripts.pserve import main