import sys
from twisted.trial import unittest
from twisted.internet import defer

import scrapy
from scrapy.utils.testproc import ProcessTest


class VersionTest(ProcessTest, unittest.TestCase):

    command = 'version'

    @defer.inlineCallbacks
    def test_output(self):
        encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
        _, out, _ = yield self.execute([])
        self.assertEqual(out.strip().decode(encoding), "Scrapy %s" % scrapy.__version__)

import sys
from twisted.trial import unittest
from twisted.internet import defer

import scrapy
from scrapy.utils.testproc import ProcessTest


class VersionTest(ProcessTest, unittest.TestCase):

    command = 'version'

    @defer.inlineCallbacks
    def test_output(self):
        encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
        _, out, _ = yield self.execute([])
        self.assertEqual(
            out.strip().decode(encoding),
            "Scrapy %s" % scrapy.__version__,
        )

    @defer.inlineCallbacks
    def test_verbose_output(self):
        encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
        _, out, _ = yield self.execute(['-v'])
        headers = [l.partition(":")[0].strip()
                   for l in out.strip().decode(encoding).splitlines()]
        self.assertEqual(headers, ['Scrapy', 'lxml', 'libxml2', 'Twisted',
                                   'Python', 'pyOpenSSL', 'Platform'])

Increase coverage of version command
Increase coverage of version command

  import sys
  from twisted.trial import unittest
  from twisted.internet import defer
  
  import scrapy
  from scrapy.utils.testproc import ProcessTest
  
  
  class VersionTest(ProcessTest, unittest.TestCase):
  
      command = 'version'
  
      @defer.inlineCallbacks
      def test_output(self):
          encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
          _, out, _ = yield self.execute([])
-         self.assertEqual(out.strip().decode(encoding), "Scrapy %s" % scrapy.__version__)
+         self.assertEqual(
+             out.strip().decode(encoding),
+             "Scrapy %s" % scrapy.__version__,
+         )
  
+     @defer.inlineCallbacks
+     def test_verbose_output(self):
+         encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
+         _, out, _ = yield self.execute(['-v'])
+         headers = [l.partition(":")[0].strip()
+                    for l in out.strip().decode(encoding).splitlines()]
+         self.assertEqual(headers, ['Scrapy', 'lxml', 'libxml2', 'Twisted',
+                                    'Python', 'pyOpenSSL', 'Platform'])
+ 
Increase coverage of version command
## Code Before:
import sys
from twisted.trial import unittest
from twisted.internet import defer

import scrapy
from scrapy.utils.testproc import ProcessTest


class VersionTest(ProcessTest, unittest.TestCase):

    command = 'version'

    @defer.inlineCallbacks
    def test_output(self):
        encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
        _, out, _ = yield self.execute([])
        self.assertEqual(out.strip().decode(encoding), "Scrapy %s" % scrapy.__version__)

## Instruction:
Increase coverage of version command
## Code After:
import sys
from twisted.trial import unittest
from twisted.internet import defer

import scrapy
from scrapy.utils.testproc import ProcessTest


class VersionTest(ProcessTest, unittest.TestCase):

    command = 'version'

    @defer.inlineCallbacks
    def test_output(self):
        encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
        _, out, _ = yield self.execute([])
        self.assertEqual(
            out.strip().decode(encoding),
            "Scrapy %s" % scrapy.__version__,
        )

    @defer.inlineCallbacks
    def test_verbose_output(self):
        encoding = getattr(sys.stdout, 'encoding') or 'utf-8'
        _, out, _ = yield self.execute(['-v'])
        headers = [l.partition(":")[0].strip()
                   for l in out.strip().decode(encoding).splitlines()]
        self.assertEqual(headers, ['Scrapy', 'lxml', 'libxml2', 'Twisted',
                                   'Python', 'pyOpenSSL', 'Platform'])
