forked from qianlifeng/HttpWrapper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTestHttpWrapper.py
86 lines (70 loc) · 2.99 KB
/
TestHttpWrapper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from HttpWrapper import HttpWrapper
from nose.tools import assert_raises
import os,urllib2
h = HttpWrapper()
def setUp():
#proxy info
#self.h.EnableProxyHandler({'http':'10.182.45.231:80','https':'10.182.45.231:80'})
#auto direct 301,302... page
#h.EnableAutoRedirectHandler()
#save cookie info between requests
#h.EnableCookieHandler()
#enable gzip and deflate encoding, which will reduce transmite time
#h.EnableConetntEncodingHandler()
#r = h.Request('image url')
#h.RequestAsyc('http://www.baidu.com',data = {},header = {},callback = funcname )
#h.RequestAsyc('http://www.sina.com.cn',callback = funcname )
#h1 = HttpWrapper()
#h1的设定应该不和h混淆
pass
def Test_ProxyHandler_NoProxyHandler():
if 'HTTP_PROXY' in os.environ:
#exist proxy setting
r = HttpWrapper()
r.DisableProxyHandler()
with assert_raises(urllib2.URLError):
r.Request('http://www.baidu.com')
else:
print 'no proxy detected,skip proxy test...'
def Test_Request():
r = h.Request('http://www.cnblogs.com')
assert r.code == 200
def Test_Request_PageNotFind():
r = h.Request('http://www.cnblogs.com/scottqiantest')
assert r.code == 404
def Test_Request_PostData():
data = {'tbUserName' : '1',
'tbPassword' : '1',
'__EVENTTARGET' : 'btnLogin',
'__EVENTARGUMENT' : '',
'__VIEWSTATE' : '/wEPDwULLTE1MzYzODg2NzZkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQtjaGtSZW1lbWJlcm1QYDyKKI9af4b67Mzq2xFaL9Bt',
'__EVENTVALIDATION' : '/wEWBQLWwpqPDQLyj/OQAgK3jsrkBALR55GJDgKC3IeGDE1m7t2mGlasoP1Hd9hLaFoI2G05'}
r = h.Request('http://passport.cnblogs.com/login.aspx',data)
assert r.content.decode('utf-8').find(u'用户不存在') > 0
def Test_Request_RefererHeader():
#tell server I'm from baidu.com
headers = {'referer':'http://www.baidu.com'}
r = h.Request('http://www.stardrifter.org/cgi-bin/ref.cgi',headers=headers)
assert r.code == 200
assert r.content.find(u'www.baidu.com') > 0
def Test_Request_AutoRedirect():
h.DisableAutoRedirectHandler()
h.EnableAutoRedirectHandler()
#auto redirect is enabled by default in HttpWrapper
r = h.Request('http://jigsaw.w3.org/HTTP/300/301.html')
assert r.url == 'http://jigsaw.w3.org/HTTP/300/Overview.html'
r = h.Request('http://jigsaw.w3.org/HTTP/300/302.html')
assert r.url == 'http://jigsaw.w3.org/HTTP/300/Overview.html'
def Test_Request_RemoveAutoRedirectHandler():
h.DisableAutoRedirectHandler()
r = h.Request('http://jigsaw.w3.org/HTTP/300/302.html')
assert r.url != 'http://jigsaw.w3.org/HTTP/300/Overview.html'
def Test_Request_RequestHead():
res = h.RequestHeader('http://www.baidu.com')
assert res.code == 200
assert res.content == ''
def Test_DownloadImageFile():
r = h.Request('http://www.google.com/images/logo.png')
assert r.content is not None and len(r.content) > 0