def test_get_cookie(self): """ Cookie and session test. """ client = WebClient() self.assert_(client) self.assertEqual(0, len(client.cookies)) session_id = None url = self.junit_url+'/session_cookie' response = client.get(url) self.assertEqual(200, response.status) cookies = copy(client.cookies) self.assertEqual(1, len(cookies)) xml = response.read() doc = libxml2.parseDoc(xml) self.assert_(doc) nodes = doc.xpathEval('//id/text()') self.assertEqual(1, len(nodes)) session_id = nodes[0].content self.assert_(session_id) # GET again and assert that the session remains the same xml = doc = nodes = response = client = None client = WebClient() self.assert_(client) self.assertEqual(0, len(client.cookies)) client.add_cookies(cookies) self.assertEqual(1, len(client.cookies)) response = client.get(url) self.assertEqual(200, response.status) self.assertEqual(1, len(client.cookies)) xml = response.read() doc = libxml2.parseDoc(xml) self.assert_(doc) nodes = doc.xpathEval('//id/text()') self.assertEqual(1, len(nodes)) _session_id = nodes[0].content self.assert_(_session_id) self.assertEqual(session_id,_session_id)
def test_post_cookies(self): """ Test POST redirect + preset cookies. """ client = WebClient() self.assert_(client) self.assertEqual(0, len(client.cookies)) url = self.junit_url+'/post_cookies' cookies = {'foo': ['foo=bar'], 'baz': ['baz=xyz']} client.add_cookies(cookies) response = client.post(url) self.assertEqual(200, response.status) # server adds a third cookie at redirect self.assertEqual(3, len(client.cookies)) xml = response.read() doc = libxml2.parseDoc(xml) for _c in cookies.values(): (k,v) = _c[0].split('=') n = doc.xpathEval('//'+k) self.assert_(n) self.assertEqual(v,n[0].content)