blob: f6ebbf01928bd5a2c8a3cdcc94d56d9b15465980 [file] [log] [blame]
Jeremy Hylton5d8a88a2007-08-14 16:47:39 +00001#!/usr/bin/env python
2
Neal Norwitz64018ae2008-03-24 05:51:45 +00003import errno
4import socket
5import sys
Jeremy Hylton5d8a88a2007-08-14 16:47:39 +00006import unittest
Benjamin Petersonee8712c2008-05-20 21:35:26 +00007from test import support
Jeremy Hylton5d8a88a2007-08-14 16:47:39 +00008
Georg Brandl24420152008-05-26 16:32:26 +00009import xmlrpc.client as xmlrpclib
Jeremy Hylton5d8a88a2007-08-14 16:47:39 +000010
11class CurrentTimeTest(unittest.TestCase):
12
13 def test_current_time(self):
14 # Get the current time from xmlrpc.com. This code exercises
15 # the minimal HTTP functionality in xmlrpclib.
16 server = xmlrpclib.ServerProxy("http://time.xmlrpc.com/RPC2")
Neal Norwitz64018ae2008-03-24 05:51:45 +000017 try:
18 t0 = server.currentTime.getCurrentTime()
19 except socket.error as e:
Neal Norwitzf7276c92008-04-01 07:38:41 +000020 print(" test_current_time: skipping test, got error: %s" % e,
Neal Norwitz64018ae2008-03-24 05:51:45 +000021 file=sys.stderr)
22 return
Jeremy Hylton5d8a88a2007-08-14 16:47:39 +000023
24 # Perform a minimal sanity check on the result, just to be sure
25 # the request means what we think it means.
26 t1 = xmlrpclib.DateTime()
27
28 dt0 = xmlrpclib._datetime_type(t0.value)
29 dt1 = xmlrpclib._datetime_type(t1.value)
30 if dt0 > dt1:
31 delta = dt0 - dt1
32 else:
33 delta = dt1 - dt0
34 # The difference between the system time here and the system
35 # time on the server should not be too big.
36 self.assert_(delta.days <= 1)
37
38
39def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +000040 support.requires("network")
41 support.run_unittest(CurrentTimeTest)
Jeremy Hylton5d8a88a2007-08-14 16:47:39 +000042
43if __name__ == "__main__":
44 test_main()