예제 #1
0
 def __init__(self, subnet=None, subnetname=None):
     super(Network, self).__init__()
     self.name = None
     self.mask = None
     self._subnets = PersistentList()
     self.nodes = PersistentDict()  # actually, Interface objects
     self._gatways = PersistentList()
     if subnet:
         self.add_subnet(subnet, subnetname)
예제 #2
0
 def other(self):
     p = PersistentList()
     p.insert(0, 2)
     assert p == [2]
     assert p.count(0) == 0
     assert p.count(2) == 1
     assert p.index(2) == 0
     p.remove(2)
     p.extend(PersistentList(interval(3)))
     assert p == interval(3)
예제 #3
0
 def cmp(self):
     p = PersistentList(interval(10))
     p2 = PersistentList(interval(10))
     assert p == p2
     assert p == list(p2)
     assert p <= p2
     assert p >= p2
     assert not p < p2
     assert not p > p2
     p.append(3)
     assert p != p2
예제 #4
0
 def slice(self):
     p = PersistentList(x for x in interval(10))
     p[:] = [2, 3]
     assert len(p) == 2
     assert p[-1:] == [3]
     p[1:] = PersistentList(interval(2))
     assert p == [2, 0, 1], p.data
     p[:] = (3, 4)
     assert p == [3, 4]
     del p[:1]
     assert p == [4]
예제 #5
0
    def index_pagename(self, pagename):
        pm = self.getpage(pagename)
        ol, ul = pm.outlinks, pm.unlinks

        # set-ify to eliminate dups
        for metakey in set(pm.outlinks.keys() + pm.unlinks.keys()):
            pl = self.pagename_by_metakey.setdefault(metakey, PersistentList())

            # add page name to metakey index
            if pagename not in pl:
                pl.append(pagename)

            # add page to metaval index
            for val in set(ol.get(metakey, []) + ul.get(metakey, [])):
                self.pagename_by_metaval.setdefault(
                    val, PersistentList()).append(pagename)
예제 #6
0
 def arith(self):
     p = PersistentList(interval(3))
     p2 = PersistentList(interval(3))
     assert p + p2 == interval(3) + interval(3)
     assert interval(3) + p2 == interval(3) + interval(3)
     assert tuple(interval(3)) + p2 == interval(3) + interval(3)
     assert p + interval(3) == interval(3) + interval(3)
     assert p + tuple(interval(3)) == interval(3) + interval(3)
     assert p * 2 == interval(3) + interval(3)
     p += p2
     assert p == interval(3) + interval(3)
     p2 += interval(3)
     assert p == interval(3) + interval(3)
     p = PersistentList(interval(3))
     p *= 2
     assert p == interval(3) + interval(3)
예제 #7
0
 def nonzero(self):
     p = PersistentList()
     assert not p
     self.root['a'] = p
     self.connection.commit()
     p.append(1)
     assert p
     assert p._p_is_unsaved()
예제 #8
0
 def __init__(self, name):
     super(NetworkDevice, self).__init__()
     self.name = self.hostname = str(name)
     self.INTERFACEMAP = PersistentDict()
     self._interfaces = PersistentDict()
     self.data_interfaces = PersistentList()
     self.admin_interface = None
     self.initialize()  # subclass interface
예제 #9
0
 def check_touch_every_reference(self):
     connection = Connection(self._get_storage())
     root = connection.get_root()
     root['a'] = Persistent()
     root['b'] = Persistent()
     from durus.persistent_list import PersistentList
     root['b'].c = PersistentList()
     connection.commit()
     touch_every_reference(connection, 'PersistentList')
     assert root['b']._p_is_unsaved()
     assert root['b'].c._p_is_unsaved()
     assert not root._p_is_unsaved()
     assert len(list(connection.get_cache())) == 4
예제 #10
0
 def sort(self):
     p = PersistentList(x for x in interval(10))
     p.reverse()
     assert p == list(reversed(interval(10)))
     p = sorted(p)
     assert p == interval(10)
예제 #11
0
 def add(self, typ, val):
     try:
         l = self[typ]
     except KeyError:
         l = self[typ] = PersistentList()
     l.append(val)
예제 #12
0
 def pop(self):
     p = PersistentList(x for x in interval(10))
     p.pop()
     assert 9 not in p
예제 #13
0
 def delete(self):
     p = PersistentList(x for x in interval(10))
     self.root['x'] = p
     self.connection.commit()
     del p[1]
     assert p._p_is_unsaved()
예제 #14
0
 def set_single(self, typ, val):
     self[typ] = PersistentList([val])
예제 #15
0
 def contains(self):
     p = PersistentList(x for x in interval(5))
     assert 2 in p
     assert -1 not in p
예제 #16
0
 def insert_again(self):
     p = PersistentList([5, 6, 7])
     p[1] = 2
     p[1] = 3
     assert p[1] == 3
예제 #17
0
 def __init__(self, jid):
     self.jid = jid
     self.items_pending = PersistentList() # [CItem, ...]
     self.config = PersistentDict()
     self.feeds = PersistentDict() # {CFeed: send first notification?}
예제 #18
0
 def no_arbitrary_attributes(self):
     p = PersistentList()
     raises(AttributeError, setattr, p, 'bogus', 1)
예제 #19
0
 def __init__(self, urlfeed):
     self.url = urlfeed
     self.title = ''
     self.link = ''
     self.last_items = PersistentList() # last 50, for example, only hash
     self.users = PersistentSet() # CUser set
예제 #20
0
 def clear_items(self):
     self.items_pending = PersistentList()
예제 #21
0
 def iter(self):
     p = PersistentList()
     assert list(p) == []
     p.extend([2, 3, 4])
     assert list(p) == [2, 3, 4]