@@ -72,6 +72,46 @@ def set_debuglevel(self, value):
7272 self .assertEqual (skip_me .debuglevel , 0 )
7373
7474
75+ class Test_Request (unittest2 .TestCase ):
76+
77+ def _getTargetClass (self ):
78+ from gcloud ._apitools .http_wrapper import Request
79+ return Request
80+
81+ def _makeOne (self , * args , ** kw ):
82+ return self ._getTargetClass ()(* args , ** kw )
83+
84+ def test_ctor_defaults (self ):
85+ request = self ._makeOne ()
86+ self .assertEqual (request .url , '' )
87+ self .assertEqual (request .http_method , 'GET' )
88+ self .assertEqual (request .headers , {'content-length' : '0' })
89+ self .assertEqual (request .body , '' )
90+ self .assertEqual (request .loggable_body , None )
91+
92+ def test_loggable_body_setter_w_body_None (self ):
93+ from gcloud ._apitools .exceptions import RequestError
94+ request = self ._makeOne (body = None )
95+ with self .assertRaises (RequestError ):
96+ request .loggable_body = 'abc'
97+
98+ def test_body_setter_w_None (self ):
99+ request = self ._makeOne ()
100+ request .loggable_body = 'abc'
101+ request .body = None
102+ self .assertEqual (request .headers , {})
103+ self .assertEqual (request .body , None )
104+ self .assertEqual (request .loggable_body , 'abc' )
105+
106+ def test_body_setter_w_non_string (self ):
107+ request = self ._makeOne ()
108+ request .loggable_body = 'abc'
109+ request .body = body = _Dummy (length = 123 )
110+ self .assertEqual (request .headers , {'content-length' : '123' })
111+ self .assertTrue (request .body is body )
112+ self .assertEqual (request .loggable_body , '<media body>' )
113+
114+
75115class _Dummy (object ):
76116 def __init__ (self , ** kw ):
77117 self .__dict__ .update (kw )
0 commit comments