Example #1
0
    def test_get_thumbnail_with_params(self):
        client = BoxClient("my_token")

        # Not available
        (
            flexmock(requests)
            .should_receive("request")
            .with_args(
                "get",
                "https://api.box.com/2.0/files/123/thumbnail.png",
                params={},
                data=None,
                headers=client.default_headers,
                stream=True,
            )
            .and_return(mocked_response(status_code=302))
            .once()
        )

        thumbnail = client.get_thumbnail(123)
        self.assertIsNone(thumbnail)

        # Already available
        (
            flexmock(requests)
            .should_receive("request")
            .with_args(
                "get",
                "https://api.box.com/2.0/files/123/thumbnail.png",
                params={},
                data=None,
                headers=client.default_headers,
                stream=True,
            )
            .and_return(mocked_response(StringIO("Thumbnail contents")))
            .once()
        )

        thumbnail = client.get_thumbnail(123)
        self.assertEqual("Thumbnail contents", thumbnail.read())

        # With size requirements
        (
            flexmock(requests)
            .should_receive("request")
            .with_args(
                "get",
                "https://api.box.com/2.0/files/123/thumbnail.png",
                params={"min_height": 1, "max_height": 2, "min_width": 3, "max_width": 4},
                data=None,
                headers=client.default_headers,
                stream=True,
            )
            .and_return(mocked_response(StringIO("Thumbnail contents")))
            .once()
        )

        thumbnail = client.get_thumbnail(123, min_height=1, max_height=2, min_width=3, max_width=4)
        self.assertEqual("Thumbnail contents", thumbnail.read())
Example #2
0
    def test_get_thumbnail_with_params(self):
        client = BoxClient("my_token")

        # Not available
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers,
                       stream=True)
            .and_return(mocked_response(status_code=302))
            .once())

        thumbnail = client.get_thumbnail(123)
        self.assertIsNone(thumbnail)

        # Already available
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers,
                       stream=True)
            .and_return(mocked_response(StringIO("Thumbnail contents")))
            .once())

        thumbnail = client.get_thumbnail(123)
        self.assertEqual('Thumbnail contents', thumbnail.read())

        # With size requirements
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={"min_height": 1,
                               "max_height": 2,
                               "min_width": 3,
                               "max_width": 4},
                       data=None,
                       headers=client.default_headers,
                       stream=True)
            .and_return(mocked_response(StringIO("Thumbnail contents")))
            .once())

        thumbnail = client.get_thumbnail(123, min_height=1, max_height=2, min_width=3, max_width=4)
        self.assertEqual('Thumbnail contents', thumbnail.read())
Example #3
0
    def test_get_client_with_retry(self):
        client = BoxClient("my_token")

        (
            flexmock(requests)
            .should_receive("request")
            .with_args(
                "get",
                "https://api.box.com/2.0/files/123/thumbnail.png",
                params={},
                data=None,
                headers=client.default_headers,
                stream=True,
            )
            .and_return(
                mocked_response(
                    status_code=202, headers={"Location": "http://box.com/url_to_thumbnail", "Retry-After": "1"}
                ),
                mocked_response(StringIO("Thumbnail contents")),
            )
            .one_by_one()
        )

        thumbnail = client.get_thumbnail(123, max_wait=1)
        self.assertEqual("Thumbnail contents", thumbnail.read())
Example #4
0
    def test_get_thumbnail(self):
        client = BoxClient("my_token")

        # Delayed without wait allowed
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers,
                       stream=True)
            .and_return(mocked_response(status_code=202, headers={"Location": "http://box.com", "Retry-After": "5"}))
            .once())

        thumbnail = client.get_thumbnail(123)
        self.assertIsNone(thumbnail)
Example #5
0
    def test_get_client_with_retry(self):
        client = BoxClient("my_token")



        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers,
                       stream=True)
            .and_return(mocked_response(status_code=202, headers={"Location": "http://box.com/url_to_thumbnail", "Retry-After": "1"}),
                        mocked_response(StringIO("Thumbnail contents")))
            .one_by_one())

        thumbnail = client.get_thumbnail(123, max_wait=1)
        self.assertEqual('Thumbnail contents', thumbnail.read())
Example #6
0
    def test_get_thumbnail(self):
        client = BoxClient("my_token")

        # Delayed without wait allowed
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers)
            .and_return(mocked_response(status_code=202, headers={"Location": "http://box.com", "Retry-After": "5"}))
            .once())

        thumbnail = client.get_thumbnail(123)
        self.assertIsNone(thumbnail)

        # Delayed within allowed wait time
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers)
            .and_return(mocked_response(status_code=202, headers={"Location": "http://box.com/url_to_thumbnail", "Retry-After": "1"}))
            .once())

        (flexmock(requests)
            .should_receive('get')
            .with_args('http://box.com/url_to_thumbnail', headers=client.default_headers)
            .and_return(mocked_response(StringIO("Thumbnail contents")))
            .once())

        thumbnail = client.get_thumbnail(123, max_wait=1)
        self.assertEqual('Thumbnail contents', thumbnail.read())

        # Not available
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers)
            .and_return(mocked_response(status_code=302))
            .once())

        thumbnail = client.get_thumbnail(123)
        self.assertIsNone(thumbnail)

        # Already available
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={},
                       data=None,
                       headers=client.default_headers)
            .and_return(mocked_response(StringIO("Thumbnail contents")))
            .once())

        thumbnail = client.get_thumbnail(123)
        self.assertEqual('Thumbnail contents', thumbnail.read())

        # With size requirements
        (flexmock(requests)
            .should_receive('request')
            .with_args("get",
                       'https://api.box.com/2.0/files/123/thumbnail.png',
                       params={"min_height": 1,
                               "max_height": 2,
                               "min_width": 3,
                               "max_width": 4},
                       data=None,
                       headers=client.default_headers)
            .and_return(mocked_response(StringIO("Thumbnail contents")))
            .once())

        thumbnail = client.get_thumbnail(123, min_height=1, max_height=2, min_width=3, max_width=4)
        self.assertEqual('Thumbnail contents', thumbnail.read())