Skip to content

Commit

Permalink
Use mock library in natural language tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
dhermes committed Nov 4, 2016
1 parent 3de5bc0 commit cb9b148
Show file tree
Hide file tree
Showing 7 changed files with 148 additions and 120 deletions.
3 changes: 2 additions & 1 deletion language/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ envlist =
[testing]
deps =
{toxinidir}/../core
mock
pytest
covercmd =
py.test --quiet \
Expand All @@ -25,6 +26,6 @@ basepython =
commands =
{[testing]covercmd}
deps =
{[testenv]deps}
{[testing]deps}
coverage
pytest-cov
64 changes: 34 additions & 30 deletions language/unit_tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,33 @@

class TestClient(unittest.TestCase):

def _getTargetClass(self):
@staticmethod
def _get_target_class():
from google.cloud.language.client import Client
return Client

def _makeOne(self, *args, **kw):
return self._getTargetClass()(*args, **kw)
def _make_one(self, *args, **kw):
return self._get_target_class()(*args, **kw)

def test_ctor(self):
import mock
from google.cloud.language.connection import Connection

creds = _Credentials()
creds = mock.Mock()
creds.create_scoped_required.return_value = False
http = object()
client = self._makeOne(credentials=creds, http=http)
client = self._make_one(credentials=creds, http=http)
self.assertIsInstance(client.connection, Connection)
self.assertIs(client.connection.credentials, creds)
self.assertIs(client.connection.http, http)

def test_document_from_text_factory(self):
import mock
from google.cloud.language.document import Document

creds = _Credentials()
client = self._makeOne(credentials=creds, http=object())
creds = mock.Mock()
creds.create_scoped_required.return_value = False
client = self._make_one(credentials=creds, http=object())

content = 'abc'
language = 'es'
Expand All @@ -52,17 +57,22 @@ def test_document_from_text_factory(self):
self.assertEqual(document.language, language)

def test_document_from_text_factory_failure(self):
creds = _Credentials()
client = self._makeOne(credentials=creds, http=object())
import mock

creds = mock.Mock()
creds.create_scoped_required.return_value = False
client = self._make_one(credentials=creds, http=object())

with self.assertRaises(TypeError):
client.document_from_text('abc', doc_type='foo')

def test_document_from_html_factory(self):
import mock
from google.cloud.language.document import Document

creds = _Credentials()
client = self._makeOne(credentials=creds, http=object())
creds = mock.Mock()
creds.create_scoped_required.return_value = False
client = self._make_one(credentials=creds, http=object())

content = '<html>abc</html>'
language = 'ja'
Expand All @@ -76,17 +86,22 @@ def test_document_from_html_factory(self):
self.assertEqual(document.language, language)

def test_document_from_html_factory_failure(self):
creds = _Credentials()
client = self._makeOne(credentials=creds, http=object())
import mock

creds = mock.Mock()
creds.create_scoped_required.return_value = False
client = self._make_one(credentials=creds, http=object())

with self.assertRaises(TypeError):
client.document_from_html('abc', doc_type='foo')

def test_document_from_url_factory(self):
import mock
from google.cloud.language.document import Document

creds = _Credentials()
client = self._makeOne(credentials=creds, http=object())
creds = mock.Mock()
creds.create_scoped_required.return_value = False
client = self._make_one(credentials=creds, http=object())

gcs_url = 'gs://my-text-bucket/sentiment-me.txt'
document = client.document_from_url(gcs_url)
Expand All @@ -97,11 +112,13 @@ def test_document_from_url_factory(self):
self.assertEqual(document.doc_type, Document.PLAIN_TEXT)

def test_document_from_url_factory_explicit(self):
import mock
from google.cloud.language.document import Document
from google.cloud.language.document import Encoding

creds = _Credentials()
client = self._makeOne(credentials=creds, http=object())
creds = mock.Mock()
creds.create_scoped_required.return_value = False
client = self._make_one(credentials=creds, http=object())

encoding = Encoding.UTF32
gcs_url = 'gs://my-text-bucket/sentiment-me.txt'
Expand All @@ -113,16 +130,3 @@ def test_document_from_url_factory_explicit(self):
self.assertEqual(document.gcs_url, gcs_url)
self.assertEqual(document.doc_type, Document.HTML)
self.assertEqual(document.encoding, encoding)


class _Credentials(object):

_scopes = None

@staticmethod
def create_scoped_required():
return True

def create_scoped(self, scope):
self._scopes = scope
return self
8 changes: 4 additions & 4 deletions language/unit_tests/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@

class TestConnection(unittest.TestCase):

def _getTargetClass(self):
def _get_target_class(self):
from google.cloud.language.connection import Connection
return Connection

def _makeOne(self, *args, **kw):
return self._getTargetClass()(*args, **kw)
def _make_one(self, *args, **kw):
return self._get_target_class()(*args, **kw)

def test_build_api_url(self):
conn = self._makeOne()
conn = self._make_one()
uri = '/'.join([
conn.API_BASE_URL,
conn.API_VERSION,
Expand Down
Loading

0 comments on commit cb9b148

Please sign in to comment.