def test__read_write_credentials_file(self):
        credentials = _create_test_credentials()
        contents = StringIO()

        multiprocess_file_storage._write_credentials_file(
            contents, {'key': credentials})

        contents.seek(0)
        data = json.load(contents)
        self.assertEqual(data['file_version'], 2)
        self.assertTrue(data['credentials']['key'])

        # Read it back.
        contents.seek(0)
        results = multiprocess_file_storage._load_credentials_file(contents)
        self.assertEqual(
            results['key'].access_token, credentials.access_token)

        # Add an invalid credential and try reading it back. It should ignore
        # the invalid one but still load the valid one.
        data['credentials']['invalid'] = '123'
        results = multiprocess_file_storage._load_credentials_file(
            StringIO(json.dumps(data)))
        self.assertNotIn('invalid', results)
        self.assertEqual(
            results['key'].access_token, credentials.access_token)
    def test__read_write_credentials_file(self):
        credentials = _create_test_credentials()
        contents = six.StringIO()

        multiprocess_file_storage._write_credentials_file(
            contents, {'key': credentials})

        contents.seek(0)
        data = json.load(contents)
        self.assertEqual(data['file_version'], 2)
        self.assertTrue(data['credentials']['key'])

        # Read it back.
        contents.seek(0)
        results = multiprocess_file_storage._load_credentials_file(contents)
        self.assertEqual(
            results['key'].access_token, credentials.access_token)

        # Add an invalid credential and try reading it back. It should ignore
        # the invalid one but still load the valid one.
        data['credentials']['invalid'] = '123'
        results = multiprocess_file_storage._load_credentials_file(
            six.StringIO(json.dumps(data)))
        self.assertNotIn('invalid', results)
        self.assertEqual(
            results['key'].access_token, credentials.access_token)
 def test__load_credentials_file_bad_file_version(self):
     contents = StringIO(json.dumps({'file_version': 1}))
     self.assertEqual(
         multiprocess_file_storage._load_credentials_file(contents), {})
 def test__load_credentials_file_no_file_version(self):
     contents = StringIO('{}')
     self.assertEqual(
         multiprocess_file_storage._load_credentials_file(contents), {})
 def test__load_credentials_file_invalid_json(self):
     contents = StringIO('{[')
     self.assertEqual(
         multiprocess_file_storage._load_credentials_file(contents), {})
 def test__load_credentials_file_bad_file_version(self):
     contents = six.StringIO(json.dumps({'file_version': 1}))
     self.assertEqual(
         multiprocess_file_storage._load_credentials_file(contents), {})
 def test__load_credentials_file_no_file_version(self):
     contents = six.StringIO('{}')
     self.assertEqual(
         multiprocess_file_storage._load_credentials_file(contents), {})
 def test__load_credentials_file_invalid_json(self):
     contents = six.StringIO('{[')
     self.assertEqual(
         multiprocess_file_storage._load_credentials_file(contents), {})