"""Unit tests for CVSClient."""

from __future__ import unicode_literals

import kgb

from rbtools.clients import RepositoryInfo
from rbtools.clients.cvs import CVSClient
from rbtools.clients.tests import SCMClientTestCase


class CVSClientTests(kgb.SpyAgency, SCMClientTestCase):
    """Unit tests for CVSClient."""

    def setUp(self):
        super(CVSClientTests, self).setUp()

        self.client = CVSClient(options=self.options)

    def test_get_repository_info_with_found(self):
        """Testing CVSClient.get_repository_info with repository found"""
        self.spy_on(CVSClient.get_local_path,
                    op=kgb.SpyOpReturn('/path/to/cvsdir'))

        repository_info = self.client.get_repository_info()

        self.assertIsInstance(repository_info, RepositoryInfo)
        self.assertIsNone(repository_info.base_path)
        self.assertEqual(repository_info.path, '/path/to/cvsdir')
        self.assertEqual(repository_info.local_path, '/path/to/cvsdir')

    def test_get_repository_info_with_not_found(self):
        """Testing CVSClient.get_repository_info with repository not found"""
        self.spy_on(CVSClient.get_local_path,
                    op=kgb.SpyOpReturn(None))

        repository_info = self.client.get_repository_info()

        self.assertIsNone(repository_info)

"""Unit tests for CVSClient."""

from __future__ import unicode_literals

import kgb

from rbtools.clients import RepositoryInfo
from rbtools.clients.cvs import CVSClient
from rbtools.clients.tests import SCMClientTestCase


class CVSClientTests(kgb.SpyAgency, SCMClientTestCase):
    """Unit tests for CVSClient."""

    scmclient_cls = CVSClient

    def test_get_repository_info_with_found(self):
        """Testing CVSClient.get_repository_info with repository found"""
        client = self.build_client()

        self.spy_on(client.get_local_path,
                    op=kgb.SpyOpReturn('/path/to/cvsdir'))

        repository_info = client.get_repository_info()

        self.assertIsInstance(repository_info, RepositoryInfo)
        self.assertIsNone(repository_info.base_path)
        self.assertEqual(repository_info.path, '/path/to/cvsdir')
        self.assertEqual(repository_info.local_path, '/path/to/cvsdir')

    def test_get_repository_info_with_not_found(self):
        """Testing CVSClient.get_repository_info with repository not found"""
        client = self.build_client()

        self.spy_on(client.get_local_path,
                    op=kgb.SpyOpReturn(None))

        repository_info = client.get_repository_info()

        self.assertIsNone(repository_info)

Update the CVS unit tests to use build_client().
Update the CVS unit tests to use build_client().

This updates the CVS unit tests to build a `CVSClient` in each test
where it's needed, rather than in `setUp()`. This is in prepration for
new tests that will need to handle client construction differently.

Testing Done:
CVS unit tests pass.

Reviewed at https://reviews.reviewboard.org/r/12504/

  """Unit tests for CVSClient."""
  
  from __future__ import unicode_literals
  
  import kgb
  
  from rbtools.clients import RepositoryInfo
  from rbtools.clients.cvs import CVSClient
  from rbtools.clients.tests import SCMClientTestCase
  
  
  class CVSClientTests(kgb.SpyAgency, SCMClientTestCase):
      """Unit tests for CVSClient."""
  
+     scmclient_cls = CVSClient
-     def setUp(self):
-         super(CVSClientTests, self).setUp()
- 
-         self.client = CVSClient(options=self.options)
  
      def test_get_repository_info_with_found(self):
          """Testing CVSClient.get_repository_info with repository found"""
+         client = self.build_client()
+ 
-         self.spy_on(CVSClient.get_local_path,
+         self.spy_on(client.get_local_path,
                      op=kgb.SpyOpReturn('/path/to/cvsdir'))
  
-         repository_info = self.client.get_repository_info()
+         repository_info = client.get_repository_info()
  
          self.assertIsInstance(repository_info, RepositoryInfo)
          self.assertIsNone(repository_info.base_path)
          self.assertEqual(repository_info.path, '/path/to/cvsdir')
          self.assertEqual(repository_info.local_path, '/path/to/cvsdir')
  
      def test_get_repository_info_with_not_found(self):
          """Testing CVSClient.get_repository_info with repository not found"""
+         client = self.build_client()
+ 
-         self.spy_on(CVSClient.get_local_path,
+         self.spy_on(client.get_local_path,
                      op=kgb.SpyOpReturn(None))
  
-         repository_info = self.client.get_repository_info()
+         repository_info = client.get_repository_info()
  
          self.assertIsNone(repository_info)
  
Update the CVS unit tests to use build_client().
## Code Before:
"""Unit tests for CVSClient."""

from __future__ import unicode_literals

import kgb

from rbtools.clients import RepositoryInfo
from rbtools.clients.cvs import CVSClient
from rbtools.clients.tests import SCMClientTestCase


class CVSClientTests(kgb.SpyAgency, SCMClientTestCase):
    """Unit tests for CVSClient."""

    def setUp(self):
        super(CVSClientTests, self).setUp()

        self.client = CVSClient(options=self.options)

    def test_get_repository_info_with_found(self):
        """Testing CVSClient.get_repository_info with repository found"""
        self.spy_on(CVSClient.get_local_path,
                    op=kgb.SpyOpReturn('/path/to/cvsdir'))

        repository_info = self.client.get_repository_info()

        self.assertIsInstance(repository_info, RepositoryInfo)
        self.assertIsNone(repository_info.base_path)
        self.assertEqual(repository_info.path, '/path/to/cvsdir')
        self.assertEqual(repository_info.local_path, '/path/to/cvsdir')

    def test_get_repository_info_with_not_found(self):
        """Testing CVSClient.get_repository_info with repository not found"""
        self.spy_on(CVSClient.get_local_path,
                    op=kgb.SpyOpReturn(None))

        repository_info = self.client.get_repository_info()

        self.assertIsNone(repository_info)

## Instruction:
Update the CVS unit tests to use build_client().
## Code After:
"""Unit tests for CVSClient."""

from __future__ import unicode_literals

import kgb

from rbtools.clients import RepositoryInfo
from rbtools.clients.cvs import CVSClient
from rbtools.clients.tests import SCMClientTestCase


class CVSClientTests(kgb.SpyAgency, SCMClientTestCase):
    """Unit tests for CVSClient."""

    scmclient_cls = CVSClient

    def test_get_repository_info_with_found(self):
        """Testing CVSClient.get_repository_info with repository found"""
        client = self.build_client()

        self.spy_on(client.get_local_path,
                    op=kgb.SpyOpReturn('/path/to/cvsdir'))

        repository_info = client.get_repository_info()

        self.assertIsInstance(repository_info, RepositoryInfo)
        self.assertIsNone(repository_info.base_path)
        self.assertEqual(repository_info.path, '/path/to/cvsdir')
        self.assertEqual(repository_info.local_path, '/path/to/cvsdir')

    def test_get_repository_info_with_not_found(self):
        """Testing CVSClient.get_repository_info with repository not found"""
        client = self.build_client()

        self.spy_on(client.get_local_path,
                    op=kgb.SpyOpReturn(None))

        repository_info = client.get_repository_info()

        self.assertIsNone(repository_info)
