def setUp(self): self.response = Mock() self.client = Mock() self.client.request.return_value = self.response self.session = Session() self.session.client = self.client
class SessionResourceTestCase(TestCase): def setUp(self): self.schema_url = "/schema" self.response = Mock() self.response.headers = {"content-type": "application/json; profile=%s" % self.schema_url} self.session = Session() patch.object(self.session, "request").start() self.session.request.return_value = self.response def tearDown(self): patch.stopall() @patch("pluct.session.Resource.from_response") @patch("pluct.session.LazySchema") def test_creates_resource_from_response(self, LazySchema, from_response): LazySchema.return_value = "fake schema" self.session.resource("/") LazySchema.assert_called_with(href=self.schema_url, session=self.session) from_response.assert_called_with(response=self.response, session=self.session, schema="fake schema") @patch("pluct.session.Schema") def test_creates_schema_from_response(self, Schema): self.session.schema("/") Schema.assert_called_with("/", raw_schema=self.response.json(), session=self.session)
def setUp(self): self.schema_url = '/schema' self.response = Mock() self.response.headers = { 'content-type': 'application/json; profile=%s' % self.schema_url } self.session = Session() patch.object(self.session, 'request').start() self.session.request.return_value = self.response
def setUp(self): self.session = Session() self.url = 'http://app.com/myschema' self.schema = Schema(self.url, raw_schema=deepcopy(SCHEMA), session=self.session)
def test_does_not_reuse_schema_on_different_sessions(self): other_session = Session() schema1 = self.create_schema(self.SCHEMA_URL) schema2 = self.create_schema(self.SCHEMA_URL, session=other_session) self.assertIsNot(schema1, schema2)
def setUp(self): raw_schema = { 'links': [ { 'rel': 'item', 'href': '/root/{id}', }, { 'rel': 'related', 'href': '/root/{slug}/{related}', }, { 'rel': 'create', 'href': '/root', 'method': 'post', }, { 'rel': 'list', 'href': '/root', } ] } data = {'id': '123', 'slug': 'slug'} self.session = Session() self.schema = Schema('/schema', raw_schema, session=self.session) self.resource = Resource.from_data( 'http://much.url.com/', data=data, schema=self.schema, session=self.session ) self.request_patcher = patch.object(self.session, 'request') self.request = self.request_patcher.start()
def run(self, *args, **kwargs): self.session = Session() self.schema = LazySchema(self.HREF, session=self.session) with patch.object(self.session, 'request') as self.request: self.response = Mock() self.response.json.return_value = deepcopy(self.RAW_SCHEMA) self.request.return_value = self.response return super(BaseLazySchemaTestCase, self).run(*args, **kwargs)
def setUp(self): self.schema_url = "/schema" self.response = Mock() self.response.headers = {"content-type": "application/json; profile=%s" % self.schema_url} self.session = Session() patch.object(self.session, "request").start() self.session.request.return_value = self.response
def test_uses_original_ref_on_representation(self): raw_schema = { 'properties': { 'inner': { '$ref': '/schema' }, } } session = Session() schema = Schema('/schema', raw_schema=raw_schema, session=session) self.assertEqual(repr(schema), repr(raw_schema))
def setUp(self): raw_schema = { 'links': [ { 'rel': 'item', 'href': '/root/{id}', }, { 'rel': 'related', 'href': '/root/{slug}/{related}', }, { 'rel': 'create', 'href': '/root', 'method': 'POST', }, { 'rel': 'list', 'href': '/root', } ] } self.data = {'id': '123', 'slug': 'slug', 'items': [{"ide": 1}, {"ida": 2}]} self.session = Session() self.schema = Schema('/schema', raw_schema, session=self.session) self.response = Mock() self.response.url = 'http://example.com' self.profile_url = 'http://example.com/schema' content_type = 'application/json; profile=%s' % (self.profile_url) self.response.headers = { 'content-type': content_type } self.resource = Resource.from_data( 'http://much.url.com/', data=deepcopy(self.data), schema=self.schema, session=self.session ) self.resource2 = Resource.from_data( 'http://much.url.com/', data=deepcopy(self.data), schema=self.schema, session=self.session, response=self.response ) self.request_patcher = patch.object(self.session, 'request') self.request = self.request_patcher.start()
class SessionResourceTestCase(TestCase): def setUp(self): self.schema_url = '/schema' self.response = Mock() self.response.headers = { 'content-type': 'application/json; profile=%s' % self.schema_url } self.session = Session() patch.object(self.session, 'request').start() self.session.request.return_value = self.response def tearDown(self): patch.stopall() @patch('pluct.session.Resource.from_response') @patch('pluct.session.LazySchema') def test_creates_resource_from_response(self, LazySchema, from_response): LazySchema.return_value = 'fake schema' self.session.resource('/') LazySchema.assert_called_with(href=self.schema_url, session=self.session) from_response.assert_called_with(response=self.response, session=self.session, schema='fake schema') @patch('pluct.session.Schema') def test_creates_schema_from_response(self, Schema): self.session.schema('/') Schema.assert_called_with('/', raw_schema=self.response.json(), session=self.session)
def test_uses_requests_session_as_default_client(self): with patch('pluct.session.RequestsSession') as client: Session() client.assert_called_with()
def setUp(self): self.url = '/' self.session = Session() self.schema = Schema(self.url, raw_schema=deepcopy(SCHEMA), session=self.session)
def setUp(self): self.session = Session() self.url = 'http://example.org/schema' self.pointer = '' self.href = '#'.join((self.url, self.pointer))
class SessionRequestsTestCase(TestCase): def setUp(self): self.response = Mock() self.client = Mock() self.client.request.return_value = self.response self.session = Session() self.session.client = self.client def test_delegates_request_to_client(self): self.session.request("/") self.client.request.assert_called_with(url="/", method="get", headers=ANY) def test_uses_default_timeout(self): self.session.timeout = 333 self.session.request("/") self.client.request.assert_called_with(url="/", method="get", timeout=333, headers=ANY) def test_allows_custom_timeout_per_request(self): self.session.request("/", timeout=999) self.client.request.assert_called_with(url="/", method="get", timeout=999, headers=ANY) def test_applies_json_content_type_header(self): self.session.request("/") self.client.request.assert_called_with(url="/", method="get", headers={"content-type": "application/json"}) def test_allows_custom_content_type_header(self): custom_headers = {"content-type": "application/yaml"} self.session.request("/", headers=custom_headers) self.client.request.assert_called_with(url="/", method="get", headers=custom_headers) def test_returns_response(self): response = self.session.request("/") self.assertIs(response, self.response) def test_checks_for_bad_response(self): self.session.request("/") self.response.raise_for_status.assert_called_once_with()
def setUp(self): self.session = Session()
def test_keeps_timeout(self): session = Session(timeout=999) self.assertEqual(session.timeout, 999)
class SessionRequestsTestCase(TestCase): def setUp(self): self.response = Mock() self.client = Mock() self.client.request.return_value = self.response self.session = Session() self.session.client = self.client def test_delegates_request_to_client(self): self.session.request('/') self.client.request.assert_called_with(url='/', method='get', headers=ANY) def test_uses_default_timeout(self): self.session.timeout = 333 self.session.request('/') self.client.request.assert_called_with(url='/', method='get', timeout=333, headers=ANY) def test_allows_custom_timeout_per_request(self): self.session.request('/', timeout=999) self.client.request.assert_called_with(url='/', method='get', timeout=999, headers=ANY) def test_applies_json_content_type_header(self): self.session.request('/') self.client.request.assert_called_with( url='/', method='get', headers={'content-type': 'application/json'}) def test_allows_custom_content_type_header(self): custom_headers = {'content-type': 'application/yaml'} self.session.request('/', headers=custom_headers) self.client.request.assert_called_with(url='/', method='get', headers=custom_headers) def test_returns_response(self): response = self.session.request('/') self.assertIs(response, self.response) def test_checks_for_bad_response(self): self.session.request('/') self.response.raise_for_status.assert_called_once_with()
def test_allows_custom_client(self): custom_client = Mock() session = Session(client=custom_client) self.assertEqual(session.client, custom_client)