Make testing style more consistent (#168)

Several overall style changes:

1.  Avoid plain `Mock()` and `Mock(spec=thing)`., prefer `mock.create_autospec()`.
1.  Don't `mock.patch` without `autospec`.
1.  Don't give mock instances special names. Prefer `thing` over `thing_mock` and `mock_thing`.
1.  When using `mock.patch`, use the same name as the item being patched to refer to the mock.
    ```python
    with mock.patch('module.thing') as thing:
        ...
    ```
    and
    ```
    @mock.patch('module.thing')
    def test(thing):
        ...
    ```
1.  Test helper factories should follow the naming convention `make_thing()`.
1.  Use `ThingStub` when creating semi-functioning subclasses for testing purposes.
diff --git a/tests/oauth2/test_credentials.py b/tests/oauth2/test_credentials.py
index e15766a..14984a1 100644
--- a/tests/oauth2/test_credentials.py
+++ b/tests/oauth2/test_credentials.py
@@ -18,6 +18,7 @@
 import pytest
 
 from google.auth import _helpers
+from google.auth import transport
 from google.oauth2 import credentials
 
 
@@ -26,40 +27,41 @@
     REFRESH_TOKEN = 'refresh_token'
     CLIENT_ID = 'client_id'
     CLIENT_SECRET = 'client_secret'
-    credentials = None
 
-    @pytest.fixture(autouse=True)
-    def credentials_fixture(self):
-        self.credentials = credentials.Credentials(
-            token=None, refresh_token=self.REFRESH_TOKEN,
-            token_uri=self.TOKEN_URI, client_id=self.CLIENT_ID,
-            client_secret=self.CLIENT_SECRET)
+    @classmethod
+    def make_credentials(cls):
+        return credentials.Credentials(
+            token=None, refresh_token=cls.REFRESH_TOKEN,
+            token_uri=cls.TOKEN_URI, client_id=cls.CLIENT_ID,
+            client_secret=cls.CLIENT_SECRET)
 
     def test_default_state(self):
-        assert not self.credentials.valid
+        credentials = self.make_credentials()
+        assert not credentials.valid
         # Expiration hasn't been set yet
-        assert not self.credentials.expired
+        assert not credentials.expired
         # Scopes aren't required for these credentials
-        assert not self.credentials.requires_scopes
+        assert not credentials.requires_scopes
         # Test properties
-        assert self.credentials.refresh_token == self.REFRESH_TOKEN
-        assert self.credentials.token_uri == self.TOKEN_URI
-        assert self.credentials.client_id == self.CLIENT_ID
-        assert self.credentials.client_secret == self.CLIENT_SECRET
+        assert credentials.refresh_token == self.REFRESH_TOKEN
+        assert credentials.token_uri == self.TOKEN_URI
+        assert credentials.client_id == self.CLIENT_ID
+        assert credentials.client_secret == self.CLIENT_SECRET
 
     def test_create_scoped(self):
+        credentials = self.make_credentials()
         with pytest.raises(NotImplementedError):
-            self.credentials.with_scopes(['email'])
+            credentials.with_scopes(['email'])
 
     @mock.patch('google.oauth2._client.refresh_grant', autospec=True)
     @mock.patch(
         'google.auth._helpers.utcnow',
         return_value=datetime.datetime.min + _helpers.CLOCK_SKEW)
-    def test_refresh_success(self, now_mock, refresh_grant_mock):
+    def test_refresh_success(self, unused_utcnow, refresh_grant):
         token = 'token'
         expiry = _helpers.utcnow() + datetime.timedelta(seconds=500)
         grant_response = {'id_token': mock.sentinel.id_token}
-        refresh_grant_mock.return_value = (
+        refresh_grant.return_value = (
             # Access token
             token,
             # New refresh token
@@ -68,21 +70,23 @@
             expiry,
             # Extra data
             grant_response)
-        request_mock = mock.Mock()
+
+        request = mock.create_autospec(transport.Request)
+        credentials = self.make_credentials()
 
         # Refresh credentials
-        self.credentials.refresh(request_mock)
+        credentials.refresh(request)
 
         # Check jwt grant call.
-        refresh_grant_mock.assert_called_with(
-            request_mock, self.TOKEN_URI, self.REFRESH_TOKEN, self.CLIENT_ID,
+        refresh_grant.assert_called_with(
+            request, self.TOKEN_URI, self.REFRESH_TOKEN, self.CLIENT_ID,
             self.CLIENT_SECRET)
 
         # Check that the credentials have the token and expiry
-        assert self.credentials.token == token
-        assert self.credentials.expiry == expiry
-        assert self.credentials.id_token == mock.sentinel.id_token
+        assert credentials.token == token
+        assert credentials.expiry == expiry
+        assert credentials.id_token == mock.sentinel.id_token
 
         # Check that the credentials are valid (have a token and are not
         # expired)
-        assert self.credentials.valid
+        assert credentials.valid