Skip to content

Commit

Permalink
update request response
Browse files Browse the repository at this point in the history
  • Loading branch information
jmgreg31 committed May 26, 2023
1 parent 44d874f commit 08c0f35
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 46 deletions.
4 changes: 2 additions & 2 deletions github/GithubObject.pyi
Expand Up @@ -126,7 +126,7 @@ class _NotSetType:
value = None

class _ValuedAttribute:
def __init__(self, value: Any) -> None: ...
value: Any
def __init__(self, value: Any) -> None:
self.value = value

NotSet: _NotSetType
32 changes: 21 additions & 11 deletions github/HookDelivery.py
Expand Up @@ -197,12 +197,15 @@ class HookDeliveryRequest(github.GithubObject.NonCompletableGithubObject):
This class represents a HookDeliveryRequest
"""

def __repr__(self) -> str:
return self.get__repr__({"payload": self._payload.value})

@property
def headers(self) -> Optional[dict]:
"""
:type: dict
"""
return self._headers.value
return self._request_headers.value

@property
def payload(self) -> Optional[dict]:
Expand All @@ -212,7 +215,7 @@ def payload(self) -> Optional[dict]:
return self._payload.value

def _initAttributes(self) -> None:
self._headers: Union[
self._request_headers: Union[
_ValuedAttribute, _BadAttribute, _NotSetType
] = github.GithubObject.NotSet
self._payload: Union[
Expand All @@ -221,7 +224,7 @@ def _initAttributes(self) -> None:

def _useAttributes(self, attributes: Dict[str, Any]) -> None:
if "headers" in attributes: # pragma no branch
self._headers = self._makeDictAttribute(attributes["headers"])
self._request_headers = self._makeDictAttribute(attributes["headers"])
if "payload" in attributes: # pragma no branch
self._payload = self._makeDictAttribute(attributes["payload"])

Expand All @@ -231,22 +234,25 @@ class HookDeliveryResponse(github.GithubObject.NonCompletableGithubObject):
This class represents a HookDeliveryResponse
"""

def __repr__(self) -> str:
return self.get__repr__({"payload": self._payload.value})

@property
def headers(self) -> Optional[dict]:
"""
:type: dict
"""
return self._headers.value
return self._response_headers.value

@property
def payload(self) -> Optional[dict]:
def payload(self) -> Optional[str]:
"""
:type: dict
:type: str
"""
return self._payload.value

def _initAttributes(self) -> None:
self._headers: Union[
self._response_headers: Union[
_ValuedAttribute, _BadAttribute, _NotSetType
] = github.GithubObject.NotSet
self._payload: Union[
Expand All @@ -255,27 +261,30 @@ def _initAttributes(self) -> None:

def _useAttributes(self, attributes: Dict[str, Any]) -> None:
if "headers" in attributes: # pragma no branch
self._headers = self._makeDictAttribute(attributes["headers"])
self._response_headers = self._makeDictAttribute(attributes["headers"])
if "payload" in attributes: # pragma no branch
self._payload = self._makeDictAttribute(attributes["payload"])
self._payload = self._makeStringAttribute(attributes["payload"])


class HookDelivery(HookDeliverySummary):
"""
This class represents a HookDelivery
"""

def __repr__(self) -> str:
return self.get__repr__({"id": self._id.value})

@property
def request(self) -> Optional[HookDeliveryRequest]:
"""
:type: HookDeliveryRequest
:type: :class:`HookDeliveryRequest`
"""
return self._request.value

@property
def response(self) -> Optional[HookDeliveryResponse]:
"""
:type: HookDeliveryResponse
:type: :class:`HookDeliveryResponse`
"""
return self._response.value

Expand All @@ -298,3 +307,4 @@ def _useAttributes(self, attributes: Dict[str, Any]) -> None:
self._response = self._makeClassAttribute(
HookDeliveryResponse, attributes["response"]
)
# self._response = self._makeDictAttribute(attributes["response"])
21 changes: 10 additions & 11 deletions tests/Github_.py
Expand Up @@ -218,17 +218,16 @@ def testGetHookDelivery(self):
self.assertEqual(delivery.installation_id, 123)
self.assertEqual(delivery.repository_id, 456)
self.assertEqual(delivery.url, "https://www.example-webhook.com")
# self.assertEqual(
# delivery.request,
# {
# "headers": {"content-type": "application/json"},
# "payload": {"action": "opened"},
# },
# )
# self.assertEqual(
# delivery.response,
# {"headers": {"content-type": "text/html;charset=utf-8"}, "payload": "ok"},
# )
self.assertIsInstance(delivery.request, github.HookDelivery.HookDeliveryRequest)
self.assertEqual(delivery.request.headers, {"content-type": "application/json"})
self.assertEqual(delivery.request.payload, {"action": "opened"})
self.assertIsInstance(
delivery.response, github.HookDelivery.HookDeliveryResponse
)
self.assertEqual(
delivery.response.headers, {"content-type": "text/html;charset=utf-8"}
)
self.assertEqual(delivery.response.payload, "ok")

def testGetHookDeliveries(self):
deliveries = self.g.get_hook_deliveries(257993)
Expand Down
21 changes: 10 additions & 11 deletions tests/Organization.py
Expand Up @@ -199,17 +199,16 @@ def testGetHookDelivery(self):
self.assertEqual(delivery.installation_id, 123)
self.assertEqual(delivery.repository_id, 456)
self.assertEqual(delivery.url, "https://www.example-webhook.com")
# self.assertEqual(
# delivery.request,
# {
# "headers": {"content-type": "application/json"},
# "payload": {"action": "opened"},
# },
# )
# self.assertEqual(
# delivery.response,
# {"headers": {"content-type": "text/html;charset=utf-8"}, "payload": "ok"},
# )
self.assertIsInstance(delivery.request, github.HookDelivery.HookDeliveryRequest)
self.assertEqual(delivery.request.headers, {"content-type": "application/json"})
self.assertEqual(delivery.request.payload, {"action": "opened"})
self.assertIsInstance(
delivery.response, github.HookDelivery.HookDeliveryResponse
)
self.assertEqual(
delivery.response.headers, {"content-type": "text/html;charset=utf-8"}
)
self.assertEqual(delivery.response.payload, "ok")

def testGetHookDeliveries(self):
deliveries = self.org.get_hook_deliveries(257993)
Expand Down
21 changes: 10 additions & 11 deletions tests/Repository.py
Expand Up @@ -949,17 +949,16 @@ def testGetHookDelivery(self):
self.assertEqual(delivery.installation_id, 123)
self.assertEqual(delivery.repository_id, 456)
self.assertEqual(delivery.url, "https://www.example-webhook.com")
# self.assertEqual(
# delivery.request,
# {
# "headers": {"content-type": "application/json"},
# "payload": {"action": "opened"},
# },
# )
# self.assertEqual(
# delivery.response,
# {"headers": {"content-type": "text/html;charset=utf-8"}, "payload": "ok"},
# )
self.assertIsInstance(delivery.request, github.HookDelivery.HookDeliveryRequest)
self.assertEqual(delivery.request.headers, {"content-type": "application/json"})
self.assertEqual(delivery.request.payload, {"action": "opened"})
self.assertIsInstance(
delivery.response, github.HookDelivery.HookDeliveryResponse
)
self.assertEqual(
delivery.response.headers, {"content-type": "text/html;charset=utf-8"}
)
self.assertEqual(delivery.response.payload, "ok")

def testGetHookDeliveries(self):
deliveries = self.repo.get_hook_deliveries(257993)
Expand Down

0 comments on commit 08c0f35

Please sign in to comment.