8000 session -> client · core-api/python-client@fec39f6 · GitHub
[go: up one dir, main page]

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

Commit fec39f6

Browse files
committed
session -> client
1 parent d8ed976 commit fec39f6

File tree

7 files changed

+83
-83
lines changed

7 files changed

+83
-83
lines changed

coreapi/__init__.py

+23Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from coreapi.document import Array, Document, Link, Object, Error, Field
44
from coreapi.exceptions import ParseError, TransportError, ErrorMessage
55
from coreapi.history import History
6-
from coreapi.sessions import Session
6+
from coreapi.client import Client
77
from coreapi.transport import BaseTransport, HTTPTransport
88

99

@@ -13,61 +13,61 @@
1313
'negotiate_encoder', 'negotiate_decoder',
1414
'Array', 'Document', 'Link', 'Object', 'Error', 'Field',
1515
'ParseError', 'NotAcceptable', 'TransportError', 'ErrorMessage',
16-
'BaseTransport', 'HTTPTransport', 'Session', 'History',
17-
'load', 'dump', 'get', 'get_default_session'
16+
'BaseTransport', 'HTTPTransport', 'Client', 'History',
17+
'load', 'dump', 'get', 'get_default_client'
1818
]
1919

2020

21-
_default_session = Session(
21+
_default_client = Client(
2222
codecs=[CoreJSONCodec(), HALCodec(), HTMLCodec(), PlainTextCodec()],
2323
transports=[HTTPTransport()]
2424
)
2525

2626

27-
def get_default_session():
28-
return _default_session
27+
def get_default_client():
28+
return _default_client
2929

3030

31-
def get_session(credentials=None, headers=None):
32-
return Session(
33-
codecs=_default_session.codecs,
31+
def get_client(credentials=None, headers=None):
32+
return Client(
33+
codecs=_default_client.codecs,
3434
transports=[HTTPTransport(credentials=credentials, headers=headers)]
3535
)
3636

3737

3838
def negotiate_encoder(accept=None):
39-
session = _default_session
40-
return session.negotiate_encoder(accept)
39+
client = _default_client
40+
return client.negotiate_encoder(accept)
4141

4242

4343
def negotiate_decoder(content_type=None):
44-
session = _default_session
45-
return session.negotiate_decoder(content_type)
44+
client = _default_client
45+
return client.negotiate_decoder(content_type)
4646

4747

4848
def get(url):
49-
session = _default_session
50-
return session.get(url)
49+
client = _default_client
50+
return client.get(url)
5151

5252

5353
def action(document, keys, params=None, action=None, inplace=None):
54-
session = _default_session
55-
return session.action(document, keys, params, action=action, inplace=inplace)
54+
client = _default_client
55+
return client.action(document, keys, params, action=action, inplace=inplace)
5656

5757

5858
def reload(document):
59-
session = _default_session
60-
return session.reload(document)
59+
client = _default_client
60+
return client.reload(document)
6161

6262

6363
def load(bytestring, content_type=None):
64-
session = _default_session
65-
codec = session.negotiate_decoder(content_type)
64+
client = _default_client
65+
codec = client.negotiate_decoder(content_type)
6666
return codec.load(bytestring)
6767

6868

6969
def dump(document, accept=None, **kwargs):
70-
session = _default_session
71-
codec = session.negotiate_encoder(accept)
70+
client = _default_client
71+
codec = client.negotiate_encoder(accept)
7272
content = codec.dump(document, **kwargs)
7373
return codec.media_type, content

coreapi/sessions.py renamed to coreapi/client.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import itypes
66

77

8-
class Session(itypes.Object):
8+
class Client(itypes.Object):
99
def __init__(self, codecs, transports):
1010
self._codecs = itypes.List(codecs)
1111
self._transports = itypes.List(transports)
@@ -110,13 +110,13 @@ def determine_transport(self, url):
110110
def get(self, url):
111111
transport = self.determine_transport(url)
112112
link = Link(url, action='get')
113-
return transport.transition(link, session=self)
113+
return transport.transition(link, client=self)
114114

115115
def reload(self, document):
116116
url = document.url
117117
transport = self.determine_transport(url)
118118
link = Link(url, action='get')
119-
return transport.transition(link, session=self)
119+
return transport.transition(link, client=self)
120120

121121
def action(self, document, keys, params=None, action=None, inplace=None):
122122
if isinstance(keys, string_types):
@@ -137,4 +137,4 @@ def action(self, document, keys, params=None, action=None, inplace=None):
137137

138138
# Perform the action, and return a new document.
139139
transport = self.determine_transport(link.url)
140-
return transport.transition(link, params, session=self, link_ancestors=link_ancestors)
140+
return transport.transition(link, params, client=self, link_ancestors=link_ancestors)

coreapi/commandline.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ def get_document_string(doc):
6161
return '<%s %s>' % (doc.title, json.dumps(doc.url))
6262

6363

64-
def get_session():
64+
def get_client():
6565
credentials = get_credentials()
6666
headers = get_headers()
67-
return coreapi.get_session(credentials, headers)
67+
return coreapi.get_client(credentials, headers)
6868

6969

7070
def get_document():
@@ -113,10 +113,10 @@ def client(ctx, version):
113113
@click.command(help='Fetch a document from the given URL.')
114114
@click.argument('url')
115115
def get(url):
116-
session = get_session()
116+
client = get_client()
117117
history = get_history()
118118
try:
119-
doc = session.get(url)
119+
doc = client.get(url)
120120
except coreapi.exceptions.ErrorMessage as exc:
121121
click.echo(display(exc.error))
122122
sys.exit(1)
@@ -203,11 +203,11 @@ def action(path, param, action, inplace):
203203
click.echo('No current document. Use `coreapi get` to fetch a document first.')
204204
sys.exit(1)
205205

206-
session = get_session()
206+
client = get_client()
207207
history = get_history()
208208
keys = coerce_key_types(doc, path)
209209
try:
210-
doc = session.action(doc, keys, params=param, action=action, inplace=inplace)
210+
doc = client.action(doc, keys, params=param, action=action, inplace=inplace)
211211
except coreapi.exceptions.ErrorMessage as exc:
212212
click.echo(display(exc.error))
213213
sys.exit(1)
@@ -227,10 +227,10 @@ def reload_document():
227227
click.echo('No current document. Use `coreapi get` to fetch a document first.')
228228
sys.exit(1)
229229

230-
session = get_session()
230+
client = get_client()
231231
history = get_history()
232232
try:
233-
doc = session.reload(doc)
233+
doc = client.reload(doc)
234234
except coreapi.exceptions.ErrorMessage as exc:
235235
click.echo(display(exc.error))
236236
sys.exit(1)
@@ -428,9 +428,9 @@ def bookmarks_get(name):
428428
click.echo('Bookmark "%s" does not exist.' % name)
429429
return
430430

431-
session = get_session()
431+
client = get_client()
432432
history = get_history()
433-
doc = session.get(bookmark['url'])
433+
doc = client.get(bookmark['url'])
434434
history = history.add(doc)
435435
click.echo(display(doc))
436436
set_document(doc)
@@ -472,27 +472,27 @@ def history_show():
472472

473473
@click.command(help="Navigate back through the browser history.")
474474
def history_back():
475-
session = get_session()
475+
client = get_client()
476476
history = get_history()
477477
if history.is_at_oldest:
478478
click.echo("Currently at oldest point in history. Cannot navigate back.")
479479
return
480480
doc, history = history.back()
481-
doc = session.reload(doc)
481+
doc = client.reload(doc)
482482
click.echo(display(doc))
483483
set_history(history)
484484
set_document(doc)
485485

486486

487487
@click.command(help="Navigate forward through the browser history.")
488488
def history_forward():
489-
session = get_session()
489+
client = get_client()
490490
history = get_history()
491491
if history.is_at_most_recent:
492492
click.echo("Currently at most recent point in history. Cannot navigate forward.")
493493
return
494494
doc, history = history.forward()
495-
doc = session.reload(doc)
495+
doc = client.reload(doc)
496496
click.echo(display(doc))
497497
set_history(history)
498498
set_document(doc)

coreapi/transport.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def _coerce_to_error_content(node):
3131
class BaseTransport(itypes.Object):
3232
schemes = None
3333

34-
def transition(self, link, params=None, session=None, link_ancestors=None):
34+
def transition(self, link, params=None, client=None, link_ancestors=None):
3535
raise NotImplementedError() # pragma: nocover
3636

3737

@@ -52,17 +52,17 @@ def credentials(self):
5252
def headers(self):
5353
return self._headers
5454

55-
def transition(self, link, params=None, session=None, link_ancestors=None):
56-
if session is None:
57-
from coreapi import get_default_session
58-
session = get_default_session()
55+
def transition(self, link, params=None, client=None, link_ancestors=None):
56+
if client is None:
57+
from coreapi import get_default_client
58+
client = get_default_client()
5959

6060
method = self.get_http_method(link.action)
6161
url, query_params, form_params = self.get_params(method, link, params)
62-
response = self.make_http_request(session, url, method, query_params, form_params)
62+
response = self.make_http_request(client, url, method, query_params, form_params)
6363
is_error = response.status_code >= 400 and response.status_code <= 599
6464
try:
65-
document = self.load_document(session, response)
65+
document = self.load_document(client, response)
6666
except UnsupportedContentType:
6767
content_type = response.headers.get('content-type').split(';')[0]
6868
if is_error and content_type == 'application/json':
@@ -122,13 +122,13 @@ def get_params(self, method, link, params=None):
122122
url = uritemplate.expand(link.url, path_params)
123123
return (url, query_params, form_params)
124124

125-
def make_http_request(self, session, url, method, query_params=None, form_params=None):
125+
def make_http_request(self, client, url, method, query_params=None, form_params=None):
126126
"""
127127
Make an HTTP request and return an HTTP response.
128128
"""
129129
opts = {
130130
"headers": {
131-
"accept": session.get_accept_header()
131+
"accept": client.get_accept_header()
132132
}
133133
}
134134
if query_params:
@@ -150,14 +150,14 @@ def make_http_request(self, session, url, method, query_params=None, form_params
150150

151151
return requests.request(method, url, **opts)
152152

153-
def load_document(self, session, response):
153+
def load_document(self, client, response):
154154
"""
155155
Given an HTTP response, return the decoded Core API document.
156156
"""
157157
if not response.content:
158158
return None
159159
content_type = response.headers.get('content-type')
160-
codec = session.negotiate_decoder(content_type)
160+
codec = client.negotiate_decoder(content_type)
161161
return codec.load(response.content, base_url=response.url)
162162

163163
def handle_inplace_replacements(self, document, link, link_ancestors):

tests/test_integration.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# coding: utf-8
2-
from coreapi import get_session, action, get, load, dump, Link, ErrorMessage
2+
from coreapi import get_client, action, get, load, dump, Link, ErrorMessage
33
import coreapi
44
import requests
55
import pytest
@@ -80,14 +80,14 @@ def mockreturn(method, url, headers):
8080
action(document, ['next'])
8181

8282

83-
def test_get_session():
84-
session = get_session(
83+
def test_get_client():
84+
client = get_client(
8585
credentials={'example.org': 'abc'},
8686
headers={'user-agent': 'foo'}
8787
)
8888

89-
assert len(session.codecs) == 4
90-
assert len(session.transports) == 1
89+
assert len(client.codecs) == 4
90+
assert len(client.transports) == 1
9191

92-
assert session.transports[0].credentials == {'example.org': 'abc'}
93-
assert session.transports[0].headers == {'user-agent': 'foo'}
92+
assert client.transports[0].credentials == {'example.org': 'abc'}
93+
assert client.transports[0].headers == {'user-agent': 'foo'}

tests/test_transitions.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# coding: utf-8
2-
from coreapi import Document, Link, HTTPTransport, Session
2+
from coreapi import Document, Link, HTTPTransport, Client
33
import pytest
44

55

66
class MockTransport(HTTPTransport):
77
schemes = ['mock']
88

9-
def transition(self, link, params=None, session=None, link_ancestors=None):
9+
def transition(self, link, params=None, client=None, link_ancestors=None):
1010
if link.action == 'get':
1111
document = Document(title='new', content={'new': 123})
1212
elif link.action in ('put', 'post'):
@@ -17,7 +17,7 @@ def transition(self, link, params=None, session=None, link_ancestors=None):
1717
return self.handle_inplace_replacements(document, link, link_ancestors)
1818

1919

20-
session = Session(codecs=[], transports=[MockTransport()])
20+
client = Client(codecs=[], transports=[MockTransport()])
2121

2222

2323
@pytest.fixture
@@ -36,44 +36,44 @@ def doc():
3636
# Test valid transitions.
3737

3838
def test_get(doc):
39-
new = session.action(doc, ['nested', 'follow'])
39+
new = client.action(doc, ['nested', 'follow'])
4040
assert new == {'new': 123}
4141
assert new.title == 'new'
4242

4343

4444
def test_inline_post(doc):
45-
new = session.action(doc, ['nested', 'action'], params={'foo': 123})
45+
new = client.action(doc, ['nested', 'action'], params={'foo': 123})
4646
assert new == {'nested': {'new': 123, 'foo': 123}}
4747
assert new.title == 'original'
4848

4949

5050
def test_post(doc):
51-
new = session.action(doc, ['nested', 'create'], params={'foo': 456})
51+
new = client.action(doc, ['nested', 'create'], params={'foo': 456})
5252
assert new == {'new': 123, 'foo': 456}
5353
assert new.title == 'new'
5454

5555

5656
def test_put(doc):
57-
new = session.action(doc, ['nested', 'update'], params={'foo': 789})
57+
new = client.action(doc, ['nested', 'update'], params={'foo': 789})
5858
assert new == {'nested': {'new': 123, 'foo': 789}}
5959
assert new.title == 'original'
6060

6161

6262
def test_delete(doc):
63-
new = session.action(doc, ['nested', 'delete'])
63+
new = client.action(doc, ['nested', 'delete'])
6464
assert new == {}
6565
assert new.title == 'original'
6666

6767

6868
# Test overrides
6969

7070
def test_override_action(doc):
71-
new = session.action(doc, ['nested', 'follow'], action='put')
71+
new = client.action(doc, ['nested', 'follow'], action='put')
7272
assert new == {'nested': {'new': 123, 'foo': None}}
7373
assert new.title == 'original'
7474

7575

7676
def test_override_inplace(doc):
77-
new = session.action(doc, ['nested', 'update'], params={'foo': 456}, inplace=False)
77+
new = client.action(doc, ['nested', 'update'], params={'foo': 456}, inplace=False)
7878
assert new == {'new': 123, 'foo': 456}
7979
assert new.title == 'new'

0 commit comments

Comments
 (0)
0