mirror of
https://git.photon.obnh.io/AXSY/whois.git
synced 2026-03-12 18:01:32 +00:00
Based on mwhois by Antonios A. Chariton Modifications for SCION AS support by Olaf Baumert, Axpo Systems AG
49 lines
1022 B
Plaintext
49 lines
1022 B
Plaintext
=Publish / Subscribe DP Tests=
|
|
|
|
Copyright (c) 2008-2015, David P. D. Moss. All rights reserved.
|
|
|
|
Basic Publisher and Subscriber object tests.
|
|
|
|
{{{
|
|
|
|
>>> from netaddr.core import Publisher, Subscriber, PrettyPrinter
|
|
>>> import pprint
|
|
|
|
>>> class Subject(Publisher):
|
|
... pass
|
|
|
|
|
|
>>> class Observer(Subscriber):
|
|
... def __init__(self, id):
|
|
... self.id = id
|
|
...
|
|
... def update(self, data):
|
|
... return repr(self), pprint.pformat(data)
|
|
...
|
|
... def __repr__(self):
|
|
... return '%s(%r)' % (self.__class__.__name__, self.id)
|
|
...
|
|
|
|
>>> s = Subject()
|
|
|
|
>>> s.attach(Observer('foo'))
|
|
>>> s.attach(Observer('bar'))
|
|
|
|
#FIXME: >>> pp = PrettyPrinter()
|
|
#FIXME: >>> s.attach(pp)
|
|
|
|
>>> data = [{'foo': 42}, {'list': [1,'2', list(range(10))]}, {'strings': ['foo', 'bar', 'baz', 'quux']}]
|
|
>>> s.notify(data)
|
|
|
|
#FIXME: >>> s.detach(pp)
|
|
>>> s.notify(['foo', 'bar', 'baz'])
|
|
|
|
>>> s.attach('foo')
|
|
Traceback (most recent call last):
|
|
...
|
|
TypeError: 'foo' does not support required interface!
|
|
|
|
>>> s.detach('foo')
|
|
|
|
}}}
|