1+ # -*- coding: utf-8 -*-
2+ from __future__ import unicode_literals
3+
4+ import unittest
5+ import zipstream
6+
7+
8+ class PointerIOTestCase (unittest .TestCase ):
9+ def test_init_no_args (self ):
10+ zipstream .PointerIO ()
11+
12+ def test_init_mode (self ):
13+ try :
14+ zipstream .PointerIO ('wb' )
15+ except Exception as err :
16+ self .fail (err )
17+
18+ for mode in ['w' , 'r' , 'rb' , 'a' , 'ab' ]:
19+ self .assertRaises (Exception , zipstream .PointerIO , mode = mode )
20+
21+ for mode in ['w' , 'wb' 'r' , 'rb' , 'a' , 'ab' ]:
22+ self .assertRaises (Exception , zipstream .PointerIO , mode = mode + '+' )
23+
24+ def test_has_fileobj_attrs (self ):
25+ fileobj = zipstream .PointerIO ()
26+
27+ self .assertTrue (hasattr (fileobj , 'write' ))
28+ self .assertTrue (hasattr (fileobj , 'close' ))
29+ self .assertTrue (hasattr (fileobj , 'tell' ))
30+
31+ def test_write_bytes (self ):
32+ fileobj = zipstream .PointerIO ()
33+ data = b'Im a little tea pot'
34+ try :
35+ fileobj .write (data )
36+ except Exception as err :
37+ self .fail (err )
38+ self .assertEqual (fileobj .tell (), 19 )
39+
40+ def test_write_unicode (self ):
41+ fileobj = zipstream .PointerIO ()
42+ data = 'Im a little tea pot'
43+ try :
44+ fileobj .write (data )
45+ except Exception as err :
46+ self .fail (err )
47+ self .assertEqual (fileobj .tell (), 19 )
48+
49+
50+ fileobj = zipstream .PointerIO ()
51+ data = '幋 儳鑤 寱懤擨 拻敁柧'
52+ try :
53+ fileobj .write (data )
54+ except Exception as err :
55+ self .fail (err )
56+ self .assertEqual (fileobj .tell (), 30 )
57+
58+ def test_write_non_string_type (self ):
59+ fileobj = zipstream .PointerIO ()
60+ data = None
61+ self .assertRaises (TypeError , fileobj .write , data )
62+
63+ fileobj = zipstream .PointerIO ()
64+ data = []
65+ self .assertRaises (TypeError , fileobj .write , data )
66+
67+ fileobj = zipstream .PointerIO ()
68+ data = tuple ()
69+ self .assertRaises (TypeError , fileobj .write , data )
70+
71+ fileobj = zipstream .PointerIO ()
72+ data = 1
73+ self .assertRaises (TypeError , fileobj .write , data )
74+
75+ fileobj = zipstream .PointerIO ()
76+ data = 1.00
77+ self .assertRaises (TypeError , fileobj .write , data )
78+
79+ if __name__ == '__main__' :
80+ unittest .main ()
0 commit comments