From 56be610e6e26ec7a17ec16dccc09fa832facb0fa Mon Sep 17 00:00:00 2001 From: Mikhail Korobov Date: Sat, 8 Aug 2015 04:54:47 +0500 Subject: [PATCH] TST a test for --profile option --- tests/test_cmdline/__init__.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test_cmdline/__init__.py b/tests/test_cmdline/__init__.py index 28ba76827..1e2905e95 100644 --- a/tests/test_cmdline/__init__.py +++ b/tests/test_cmdline/__init__.py @@ -1,9 +1,18 @@ +import os import sys +import shutil +import pstats +import tempfile from subprocess import Popen, PIPE import unittest +try: + from cStringIO import StringIO +except ImportError: + from io import StringIO from scrapy.utils.test import get_testenv + class CmdlineTest(unittest.TestCase): def setUp(self): @@ -30,3 +39,18 @@ class CmdlineTest(unittest.TestCase): self.assertEqual(self._execute('settings', '--get', 'TEST1'), \ 'override') + def test_profiling(self): + path = tempfile.mkdtemp() + filename = os.path.join(path, 'res.prof') + try: + self._execute('version', '--profile', filename) + self.assertTrue(os.path.exists(filename)) + out = StringIO() + stats = pstats.Stats(filename, stream=out) + stats.print_stats() + out.seek(0) + stats = out.read() + self.assertIn('scrapy/commands/version.py', stats) + self.assertIn('tottime', stats) + finally: + shutil.rmtree(path)