def testBackOff(self): # no support for ``with assertRaises`` in python 2.6 if sys.version_info < (2,7): return def mypost(url, data, headers): self.assertEqual(url, 'h://c:4/p') self.assertEqual(data.decode('utf-8'), """\ <?xml version='1.0' encoding='utf-8'?> <galileo-client version="2.0"><client-info><client-id>%(id)s</client-id><client-version>%(version)s</client-version><client-mode>status</client-mode></client-info></galileo-client>""" % { 'id': RemoteXMLDatabase.ID, 'version': __version__}) self.assertEqual(headers['Content-Type'], 'text/xml') return requestResponse(""" <back-off> <min>1800000</min> <max>3600000</max> </back-off> <ui-request action="login"> <client-display height="450" width="650" minDisplayTimeMs="20000" containsForm="false"> Server is in maintenance mode. We'll be back soon! </client-display> </ui-request>""", '') mod.requests.post = mypost gc = RemoteXMLDatabase('h', 'c', 'p', 4) with self.assertRaises(BackOffException) as cm: gc.requestStatus() e = cm.exception self.assertEqual(e.min, 1800000) self.assertEqual(e.max, 3600000) val = e.getAValue() self.assertTrue(e.min <= val <= e.max)
def testOk(self): def mypost(url, data, headers): self.assertEqual(url, 'scheme://host:8888/path/to/stuff') self.assertEqual(data.decode('utf-8'), """\ <?xml version='1.0' encoding='utf-8'?> <galileo-client version="2.0"><client-info><client-id>%(id)s</client-id><client-version>%(version)s</client-version><client-mode>status</client-mode></client-info></galileo-client>""" % { 'id': RemoteXMLDatabase.ID, 'version': __version__}) self.assertEqual(headers['Content-Type'], 'text/xml') return requestResponse('') mod.requests.post = mypost gc = RemoteXMLDatabase('scheme', 'host', 'path/to/stuff', 8888) gc.requestStatus()