예제 #1
0
    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()
예제 #2
0
    def setUp(self):
        self.response = Mock()
        self.client = Mock()
        self.client.request.return_value = self.response

        self.session = Session()
        self.session.client = self.client
예제 #3
0
    def setUp(self):
        self.session = Session()

        self.url = 'http://app.com/myschema'
        self.schema = Schema(self.url,
                             raw_schema=deepcopy(SCHEMA),
                             session=self.session)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
 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))
예제 #7
0
    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
예제 #8
0
    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()
예제 #9
0
 def test_allows_custom_client(self):
     custom_client = Mock()
     session = Session(client=custom_client)
     self.assertEqual(session.client, custom_client)
예제 #10
0
 def test_uses_requests_session_as_default_client(self):
     with patch('pluct.session.RequestsSession') as client:
         Session()
         client.assert_called_with()
예제 #11
0
 def test_keeps_timeout(self):
     session = Session(timeout=999)
     self.assertEqual(session.timeout, 999)
예제 #12
0
 def setUp(self):
     self.session = Session()
예제 #13
0
 def setUp(self):
     self.session = Session()
     self.url = 'http://example.org/schema'
     self.pointer = ''
     self.href = '#'.join((self.url, self.pointer))
예제 #14
0
 def setUp(self):
     self.url = '/'
     self.session = Session()
     self.schema = Schema(self.url,
                          raw_schema=deepcopy(SCHEMA),
                          session=self.session)