Accesscodes *********** :doctest: We can create accesscodes: >>> from waeup.sirp.accesscodes.accesscodes import AccessCode >>> ac = AccessCode(0, 'APP', 12, '0123456789', 12.12) >>> ac.representation 'APP-12-0123456789' We can create batches. Here we create a batch of three entries, with a cost of 12.12 per code, the batch prefix 'APP', batch number 12, creator ID 'Fred' and some arbitrary creation date: >>> import datetime >>> from waeup.sirp.accesscodes.accesscodes import AccessCodeBatch >>> batch = AccessCodeBatch( ... datetime.datetime(2009, 12, 23), 'Fred', 10, 'APP', 12.12, 3) The main point about a batch is that it can act as an iterator over the generated access codes. The codes are generated on-the-fly when iterating over the batch for the first time: >>> ac_codes = [x.representation for x in batch] >>> ac_codes ['APP-10-...', 'APP-10-...', 'APP-10-...'] When we ask for the access codes again, we will get equal entries. 'Equal' means: we will get same representations, but not neccessarily the same objects: >>> ac_codes2 = [x.representation for x in batch] >>> ac_codes2 == ac_codes True >>> ac_codes[0] == ac_codes2[0] True >>> ac_codes[0] is ac_codes2[0] False `Accesscode` and `AccessCodeBatch` classes implement the respective interfaces: >>> from waeup.sirp.accesscodes.accesscodes import ( ... AccessCode, AccessCodeBatch) >>> from waeup.sirp.accesscodes.interfaces import( ... IAccessCode, IAccessCodeBatch) >>> from zope.interface.verify import verifyClass >>> verifyClass(IAccessCode, AccessCode) True >>> verifyClass(IAccessCodeBatch, AccessCodeBatch) True