1.1 --- a/tests/test_handle.py Fri Aug 21 14:47:53 2015 +0200
1.2 +++ b/tests/test_handle.py Sat Aug 29 00:14:32 2015 +0200
1.3 @@ -20,7 +20,7 @@
1.4 """
1.5
1.6 from imiptools.client import ClientForObject
1.7 -from imiptools.data import Object, get_address
1.8 +from imiptools.data import Object, get_address, parse_object
1.9 from imiptools.mail import Messenger
1.10 import imip_store
1.11 import sys
1.12 @@ -69,26 +69,34 @@
1.13
1.14 if __name__ == "__main__":
1.15 try:
1.16 - nargs = 5
1.17 - accept, store_dir, user, uid, recurrenceid = (sys.argv[1:nargs+1] + [None])[:nargs]
1.18 + minargs = 3; maxargs = 5
1.19 + accept, store_dir, user, uid, recurrenceid = (sys.argv[1:maxargs+1] + ([None] * (maxargs - minargs)))[:maxargs]
1.20 except ValueError:
1.21 print >>sys.stderr, "Need 'accept' or 'decline', a store directory, user URI, event UID and optional RECURRENCE-ID."
1.22 print >>sys.stderr, "The RECURRENCE-ID must be in the form employed by the store."
1.23 + print >>sys.stderr
1.24 + print >>sys.stderr, "Alternatively, omit the UID and RECURRENCE-ID and provide event-only details on standard input"
1.25 + print >>sys.stderr, "to force the script to handle an event not already present in the store."
1.26 sys.exit(1)
1.27
1.28 store = imip_store.FileStore(store_dir)
1.29 - fragment = store.get_event(user, uid, recurrenceid)
1.30 +
1.31 + if uid is not None:
1.32 + fragment = store.get_event(user, uid, recurrenceid)
1.33
1.34 - if not fragment:
1.35 - print >>sys.stderr, "No such event:", uid, recurrenceid
1.36 - sys.exit(1)
1.37 + if not fragment:
1.38 + print >>sys.stderr, "No such event:", uid, recurrenceid
1.39 + sys.exit(1)
1.40 + else:
1.41 + fragment = parse_object(sys.stdin, "utf-8")
1.42
1.43 obj = Object(fragment)
1.44 - handler = TestClient(obj, user, Messenger())
1.45 + handler = TestClient(obj, user, Messenger(), store)
1.46 response = handler.handle_request(accept == "accept")
1.47
1.48 if response:
1.49 - store.dequeue_request(user, uid, recurrenceid)
1.50 + if uid is not None:
1.51 + store.dequeue_request(user, uid, recurrenceid)
1.52 print response
1.53 else:
1.54 sys.exit(1)