def test_cache_hit(self): self.cache_mock.cache[NONEXISTENT_FILE] = {'web': 'secret info'} client_type, client_info = clientsecrets.loadfile( NONEXISTENT_FILE, cache=self.cache_mock) self.assertEqual('web', client_type) self.assertEqual('secret info', client_info) # make sure we didn't do any set() RPCs self.assertEqual(None, self.cache_mock.last_set_ns)
def test_cache_miss(self): client_type, client_info = clientsecrets.loadfile( VALID_FILE, cache=self.cache_mock) self.assertEqual('web', client_type) self.assertEqual('foo_client_secret', client_info['client_secret']) cached = self.cache_mock.cache[VALID_FILE] self.assertEqual({client_type: client_info}, cached) # make sure we're using non-empty namespace ns = self.cache_mock.last_set_ns self.assertTrue(bool(ns)) # make sure they're equal self.assertEqual(ns, self.cache_mock.last_get_ns)
def _load_client_secrets(filename): """Loads client secrets from the given filename. Args: filename: The name of the file containing the JSON secret key. Returns: A 2-tuple, the first item containing the client id, and the second item containing a client secret. """ client_type, client_info = clientsecrets.loadfile(filename) if client_type != clientsecrets.TYPE_WEB: raise ValueError( 'The flow specified in {} is not supported, only the WEB flow ' 'type is supported.'.format(client_type)) return client_info['client_id'], client_info['client_secret']
def test_without_cache(self): # this also ensures loadfile() is backward compatible client_type, client_info = clientsecrets.loadfile(VALID_FILE) self.assertEqual('web', client_type) self.assertEqual('foo_client_secret', client_info['client_secret'])
def test_validation(self): with self.assertRaises(clientsecrets.InvalidClientSecretsError): clientsecrets.loadfile(INVALID_FILE, cache=self.cache_mock)