Пример #1
0
    def test_download_file__if_buffer_size_explicitly_set__should_call_sdk_once(
            self, buffer_size):
        file_data = b'a' * buffer_size
        self.sdk.get_device_file_data.return_value = file_data
        obj = ZKAccess(connstr=self.connstr, device_model=ZK400)

        res = obj.download_file('test_file.dat', buffer_size)

        assert isinstance(res, io.BytesIO)
        assert res.getvalue() == file_data
        self.sdk.get_device_file_data.assert_called_once_with(
            'test_file.dat', buffer_size)
Пример #2
0
    def test_download_file__should_download_file_with_default_buffer_size(
            self):
        file_data = b'file_data!'
        self.sdk.get_device_file_data.return_value = file_data
        obj = ZKAccess(connstr=self.connstr, device_model=ZK400)

        res = obj.download_file('test_file.dat')

        assert isinstance(res, io.BytesIO)
        assert res.getvalue() == file_data
        self.sdk.get_device_file_data.assert_called_once_with(
            'test_file.dat', 1 * 1024 * 1024)
Пример #3
0
    def test_download_file__if_buffer_got_overflowed__should_repeat_with_double_buffer_size(
            self, data_size):
        def se(*a, **kw):
            return file_data[:a[1]]

        file_data = b'a' * data_size
        self.sdk.get_device_file_data.side_effect = se
        obj = ZKAccess(connstr=self.connstr, device_model=ZK400)
        expect_calls = [
            call('test_file.dat', 1 * 1024 * 1024),
            call('test_file.dat', 2 * 1024 * 1024)
        ]

        res = obj.download_file('test_file.dat')

        self.sdk.get_device_file_data.assert_has_calls(expect_calls)
        assert isinstance(res, io.BytesIO)
        assert res.tell() == 0
        assert len(res.getvalue()) == len(file_data)