예제 #1
0
    def setUp(self):
        super(TestFacebookClient, self).setUp()
        self.request = FacebookRequest(endpoint='me', method='GET')
        self.batch_request = FacebookBatchRequest(access_token='fake_token',
                                                  requests=[self.request])
        self.fake_response = FakeResponse(
            status_code=200,
            content=
            '{"data":[{"id":"123","name":"Foo"},{"id":"1337","name":"Bar"}]}',
        )
        self.fake_batch_response = FakeResponse(
            status_code=200,
            content='[{"code":"123","body":"Foo"}]',
        )

        self.client = FakeFacebookClient(fake_response=self.fake_response)
예제 #2
0
    def test_send_batch_request(self):
        self.facebook.client = FakeFacebookClient(fake_response=FakeResponse(
            status_code=200,
            content='[{"code":"200","body":"Foo"}]',
            headers=
            '{"Content-Type": "application/json; charset=UTF-8","x-fb-trace-id": "1234"}'
        ))
        batches = [
            self.facebook.request(
                method='GET',
                endpoint='some_endpoint',
            )
        ]

        response = self.facebook.send_batch_request(
            requests=batches,
            access_token='foo_token',
            graph_version='v2.7',
            timeout=182,
        )

        self.assertEqual(response.request.method, 'POST')
        self.assertEqual(response.request.access_token, 'foo_token')
        self.assertEqual(response.request.graph_version, 'v2.7')
        self.assertEqual(response.request.timeout, 182)
        self.assertDictEqual(response.request.params,
                             {'access_token': 'foo_token'})
예제 #3
0
 def test_delete_facebook_get_method(self):
     self.facebook.client = FakeFacebookClient(fake_response=FakeResponse(
         status_code=200,
         content='',
     ))
     response = self.facebook.delete(endpoint='/test', )
     self.assertEqual(response.request.method, 'DELETE')
예제 #4
0
 def test_post_facebook_get_method(self):
     self.facebook.client = FakeFacebookClient(fake_response=FakeResponse(
         status_code=200,
         content='',
         headers='',
     ))
     response = self.facebook.post(endpoint='/test', )
     self.assertEqual(response.request.method, 'POST')
예제 #5
0
 def test_send_request_error(self):
     self.client = FakeFacebookClient(fake_response=FakeResponse(
         status_code=400, content='{"error": {"code": 100}}'), )
     self.assertRaises(
         FacebookResponseException,
         self.client.send_request,
         self.request,
     )
    def setUp(self):
        super(TestFacebookClient, self).setUp()
        self.request = FacebookRequest(endpoint='me', method='GET')
        self.batch_request = FacebookBatchRequest(
            access_token='fake_token',
            requests=[self.request]
        )
        self.fake_response = FakeResponse(
            status_code=200,
            content='{"data":[{"id":"123","name":"Foo"},{"id":"1337","name":"Bar"}]}',
            headers='{"Content-Type": "application/json; charset=UTF-8","x-fb-trace-id": "1234"}',
        )
        self.fake_batch_response = FakeResponse(
            status_code=200,
            content='[{"code":"123","body":"Foo"}]',
            headers='{"Content-Type": "application/json; charset=UTF-8","x-fb-trace-id": "1234"}',
        )

        self.client = FakeFacebookClient(fake_response=self.fake_response)
 def test_send_request_error(self):
     self.client = FakeFacebookClient(
         fake_response=FakeResponse(
             status_code=400,
             content='{"error": {"code": 100}}',
             headers='{"Content-Type": "application/json; charset=UTF-8","x-fb-trace-id": "1234"}',
         )
     )
     with self.assertRaises(FacebookResponseException):
         self.client.send_request(self.request)
예제 #8
0
    def test_send_request_default_access_token_and_version(self):
        self.facebook.client = FakeFacebookClient(fake_response=FakeResponse(
            status_code=200,
            content='',
        ))
        response = self.facebook.send_request(
            method='GET',
            endpoint='some_endpoint',
        )

        self.assertEqual(response.request.method, 'GET')
        self.assertEqual(response.request.endpoint, 'some_endpoint')
        self.assertEqual(response.request.access_token, 'my_token')
        self.assertEqual(response.request.graph_version, 'v2.6')
        self.assertDictEqual(response.request.params,
                             {'access_token': 'my_token'})
예제 #9
0
 def test_send_request(self):
     self.facebook.client = FakeFacebookClient(fake_response=FakeResponse(
         status_code=200,
         content='',
     ))
     response = self.facebook.send_request(method='GET',
                                           endpoint='some_endpoint',
                                           access_token='foo_token',
                                           graph_version='v2.7')
     self.assertIsInstance(response, FacebookResponse)
     self.assertEqual(response.request.method, 'GET')
     self.assertEqual(response.request.endpoint, 'some_endpoint')
     self.assertEqual(response.request.access_token, 'foo_token')
     self.assertEqual(response.request.graph_version, 'v2.7')
     self.assertDictEqual(response.request.params,
                          {'access_token': 'foo_token'})
예제 #10
0
    def test_send_batch_request_default_access_token_and_version(self):
        self.facebook.client = FakeFacebookClient(fake_response=FakeResponse(
            status_code=200,
            content='[{"code":"200","body":"Foo"}]',
        ))
        batches = [
            self.facebook.request(
                method='GET',
                endpoint='some_endpoint',
            )
        ]

        response = self.facebook.send_batch_request(requests=batches, )

        self.assertEqual(response.request.method, 'POST')
        self.assertEqual(response.request.access_token, 'my_token')
        self.assertEqual(response.request.graph_version, 'v2.6')
        self.assertDictEqual(response.request.params,
                             {'access_token': 'my_token'})
예제 #11
0
 def test_get_movies_empty_list(self, request):
     mock_data = []
     request.return_value = FakeResponse(mock_data, HTTPStatus.OK)
     result = MoviesPeopleGetter._get_movies()
     self.assertEqual(result, {})
예제 #12
0
 def test_get_movies_bad_request(self, request):
     request.return_value = FakeResponse(None, HTTPStatus.BAD_REQUEST)
     with self.assertRaises(InternalServerError,
                            msg='Something went wrong') as e:
         MoviesPeopleGetter._get_movies()
예제 #13
0
 def test_get_movies(self, request):
     request.return_value = FakeResponse(MOVIES_DATA, HTTPStatus.OK)
     result = MoviesPeopleGetter._get_movies()
     self.assertEqual(result, {m['id']: m for m in MOVIES_DATA})
예제 #14
0
 def test_get_people(self, request):
     request.return_value = FakeResponse(PEOPLE_DATA, HTTPStatus.OK)
     result = MoviesPeopleGetter._get_people()
     self.assertEqual(result, PEOPLE_DATA)