|
|
- import json
-
- from hc.api.models import Channel
- from hc.test import BaseTestCase
- from mock import patch
-
-
- class ChannelModelTestCase(BaseTestCase):
-
- @patch("hc.api.models.requests.post")
- @patch("hc.api.models.requests.get")
- def test_it_refreshes_hipchat_access_token(self, mock_get, mock_post):
- mock_get.return_value.json.return_value = {
- "capabilities": {
- "oauth2Provider": {"tokenUrl": "http://example.org"}
- }
- }
- mock_post.return_value.json.return_value = {"expires_in": 100}
-
- channel = Channel(kind="hipchat", user=self.alice, value=json.dumps({
- "oauthId": "foo",
- "oauthSecret": "bar",
- "capabilitiesUrl": "http://example.org/capabilities.json"
- }))
-
- channel.refresh_hipchat_access_token()
- # It should fetch the remote capabilities document
- mock_get.assert_called()
-
- # It should request a token using a correct tokenUrl
- mock_post.assert_called()
- args, kwargs = mock_post.call_args
- self.assertEqual(args[0], "http://example.org")
-
- self.assertTrue("expires_at" in channel.value)
|