Skip to content
This repository was archived by the owner on Mar 13, 2022. It is now read-only.

Commit b0aae73

Browse files
committed
Support customizing “Accept” header and added a testcase to test the header
1 parent 8a969ee commit b0aae73

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

Diff for: dynamic/client.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -219,11 +219,16 @@ def request(self, method, path, body=None, **params):
219219
header_params = params.get('header_params', {})
220220
form_params = []
221221
local_var_files = {}
222+
222223
# HTTP header `Accept`
223-
header_params['Accept'] = self.client.select_header_accept([
224-
'application/json',
225-
'application/yaml',
226-
])
224+
if params.get('header_params') is not None:
225+
partial_object = params.get('header_params')
226+
if 'PartialObjectMetadata' in partial_object.get('Accept'):
227+
header_params['Accept'] = 'application/json;as=PartialObjectMetadata;v=v1;g=meta.k8s.io'
228+
else:
229+
#default
230+
header_params['Accept'] = self.client.select_header_accept([
231+
'application/json', 'application/yaml'])
227232

228233
# HTTP header `Content-Type`
229234
if params.get('content_type'):

Diff for: dynamic/test_client.py

+11
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,17 @@ def test_cluster_custom_resources(self):
7777
self.assertEqual(name, resp.metadata.name)
7878
self.assertTrue(resp.status)
7979

80+
#Checking header_params `PartialObjectMetadata`
81+
header_params = 'PartialObjectMetadata'
82+
params = {'header_params': {'Accept': 'application/json;as=PartialObjectMetadata;v=v1;g=meta.k8s.io'}}
83+
api_version = 'meta.k8s.io/v1'
84+
resp = crd_api.get(
85+
name=name,
86+
**params
87+
)
88+
self.assertEqual(header_params, resp.kind)
89+
self.assertEqual(api_version, resp.apiVersion)
90+
8091
try:
8192
changeme_api = client.resources.get(
8293
api_version='apps.example.com/v1', kind='ClusterChangeMe')

0 commit comments

Comments
 (0)