1#############################################################################
2##
3## Copyright (C) 2018 The Qt Company Ltd.
4## Contact: https://www.qt.io/licensing/
5##
6## This file is part of the test suite of Qt for Python.
7##
8## $QT_BEGIN_LICENSE:GPL-EXCEPT$
9## Commercial License Usage
10## Licensees holding valid commercial Qt licenses may use this file in
11## accordance with the commercial license agreement provided with the
12## Software or, alternatively, in accordance with the terms contained in
13## a written agreement between you and The Qt Company. For licensing terms
14## and conditions see https://www.qt.io/terms-conditions. For further
15## information use the contact form at https://www.qt.io/contact-us.
16##
17## GNU General Public License Usage
18## Alternatively, this file may be used under the terms of the GNU
19## General Public License version 3 as published by the Free Software
20## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21## included in the packaging of this file. Please review the following
22## information to ensure the GNU General Public License requirements will
23## be met: https://www.gnu.org/licenses/gpl-3.0.html.
24##
25## $QT_END_LICENSE$
26##
27#############################################################################
28
29import os
30import sys
31import unittest
32
33sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
34from init_paths import init_test_paths
35init_test_paths(False)
36
37from PySide2.QtCore import QIODevice, QTemporaryFile
38import py3kcompat as py3k
39
40class FileChild1(QTemporaryFile):
41    pass
42
43class FileChild2(QTemporaryFile):
44    def readData(self, maxlen):
45        return super(FileChild2, self).readData(maxlen)
46    def readLineData(self, maxlen):
47        return super(FileChild2, self).readLineData(maxlen)
48
49class readDataTest(unittest.TestCase):
50    '''Test case for readData and readLineData'''
51
52    def setUp(self):
53        '''Acquire resources'''
54        self.filename1 = FileChild1()
55        self.assertTrue(self.filename1.open())
56        self.filename1.write(py3k.b('Test text for testing'))
57
58        self.filename2 = FileChild2()
59        self.assertTrue(self.filename2.open())
60        self.filename2.write(py3k.b('Test text for testing'))
61
62    def tearDown(self):
63        '''release resources'''
64        pass
65
66    def testBasic(self):
67        '''QTemporaryFile.read'''
68        self.filename1.seek(0)
69        s1 = self.filename1.read(50)
70        self.assertEqual(s1, 'Test text for testing')
71
72
73    def testBug40(self):
74        self.filename2.seek(0)
75        s2 = self.filename2.read(50)
76        self.assertEqual(s2, 'Test text for testing')
77
78        self.filename2.seek(0)
79        s2 = self.filename2.readLine(22)
80        self.assertEqual(s2, 'Test text for testing')
81
82        self.filename1.seek(0)
83        s1 = self.filename1.read(50)
84        self.assertEqual(s1, s2)
85
86if __name__ == '__main__':
87    unittest.main()
88