~bzr-pqm/bzr/bzr.dev

2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2006 Canonical Ltd
1558.15.7 by Aaron Bentley
Add copyright statements
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
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1558.15.7 by Aaron Bentley
Add copyright statements
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):
6437.19.2 by Wouter van Heyst
fix some more
44
        with file('boo', 'wb') as f: f.write('ab' * 2048)
1558.15.6 by Aaron Bentley
Added more tests
45
        check_text_path('boo')
6437.19.2 by Wouter van Heyst
fix some more
46
        with file('boo', 'wb') as f: f.write('a' * 1023 + '\x00')
1558.15.6 by Aaron Bentley
Added more tests
47
        self.assertRaises(BinaryFile, check_text_path, 'boo')