~bzr-pqm/bzr/bzr.dev

1558.15.7 by Aaron Bentley
Add copyright statements
1
# Copyright (C) 2006 by Canonical Ltd
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
1558.15.1 by Aaron Bentley
Add text_file function
17
from StringIO import StringIO
18
19
from bzrlib.errors import BinaryFile
1558.15.6 by Aaron Bentley
Added more tests
20
from bzrlib.tests import TestCase, TestCaseInTempDir
1773.4.1 by Martin Pool
Add pyflakes makefile target; fix many warnings
21
from bzrlib.textfile import text_file, check_text_lines, check_text_path
1558.15.1 by Aaron Bentley
Add text_file function
22
23
24
class TextFile(TestCase):
1558.15.8 by Aaron Bentley
Whitespace fixes
25
1558.15.1 by Aaron Bentley
Add text_file function
26
    def test_text_file(self):
27
        s = StringIO('ab' * 2048)
28
        self.assertEqual(text_file(s).read(), s.getvalue())
29
        s = StringIO('a' * 1023 + '\x00')
30
        self.assertRaises(BinaryFile, text_file, s)
31
        s = StringIO('a' * 1024 + '\x00')
32
        self.assertEqual(text_file(s).read(), s.getvalue())
33
1558.15.6 by Aaron Bentley
Added more tests
34
    def test_check_text_lines(self):
35
        lines = ['ab' * 2048]
36
        check_text_lines(lines)
37
        lines = ['a' * 1023 + '\x00']
38
        self.assertRaises(BinaryFile, check_text_lines, lines)
39
1558.15.8 by Aaron Bentley
Whitespace fixes
40
1558.15.6 by Aaron Bentley
Added more tests
41
class TextPath(TestCaseInTempDir):
1558.15.8 by Aaron Bentley
Whitespace fixes
42
1558.15.6 by Aaron Bentley
Added more tests
43
    def test_text_file(self):
44
        file('boo', 'wb').write('ab' * 2048)
45
        check_text_path('boo')
46
        file('boo', 'wb').write('a' * 1023 + '\x00')
47
        self.assertRaises(BinaryFile, check_text_path, 'boo')