Exemplo n.º 1
0
    def test_missing(self):
        '''
        Test missing counts.
        '''
        s = blist.BuddyListSorter()
        s.addSorter(blist.ByGroup(False, 2))
        s.addSorter(blist.ByService(True))
        s.addSorter(blist.ByOnline(True, True))
        cmps = [
            blist.CustomOrder, blist.Service, blist.UserOrdering,
            blist.UserOrdering
        ]
        s.setComparators(cmps)

        p = Protocol('digsby01', 'aim')
        p2 = Protocol('steve', 'digsby')

        def show(root_group):
            s.set_root(root_group)
            g = s._gather()
            try:
                print
                dump_elem_tree(g)
            finally:
                s._done_gather(g)

        root_group = Group(
            'root', p, 'root',
            RootGroup(
                'root1', p, 'root1',
                Group('aim group', p, 'aim group',
                      Buddy('abc', p, status='available'),
                      Buddy('abc', p, status='away'),
                      Buddy('def', p, status='offline'),
                      Buddy('def', p, status='offline'),
                      Buddy('ghi', p, status='away')),
                Buddy('12345', p, service='icq', status='offline'),
                Buddy('12345', p, service='aim', status='offline'),
                Buddy('fadjkls', p, status='mobile'),
                Group('group #2', p, 'group #2',
                      Buddy('wut', p, status='mobile')),
                RootGroup(
                    'root2', p2, 'root2',
                    Group(
                        'digsby group',
                        p2,
                        'digsby group',
                        Buddy('ninjadigsby', p2, status='away'),
                    ))))

        leakcheck(show, root_group)
Exemplo n.º 2
0
    def test_group_ownership(self):
        s = blist.BuddyListSorter()
        s.addSorter(blist.ByGroup(True))

        p = Protocol('aim', 'digsby01')
        s.set_root(
            Group('root', p, 'root',
                  Group('subgroup', p, 'root', Buddy('abc', p))))

        root = s._gather()
        assert root.name == 'root'
        subgroup = root[0]
        assert subgroup.name == 'subgroup'
        assert subgroup[0].name == 'abc'
        s._done_gather(root)
Exemplo n.º 3
0
    def Connect(self, invisible=False):
        self.change_state(self.Statuses.ONLINE)
        g1 = Group('Foo', self, 'Foo')
        g2 = Group('Bar', self, 'Bar')
        self.buddies['foobar'] = FakeBuddy('foobar', self)
        #g1.append(Contact(self.buddies['foobar'], 'foobar'))
        self.root_group.append(g1)
        self.root_group.append(g2)

        for i in range(int(self.NUM_BUDDIES)):
            g = random.choice((g1, g2))
            buddy = FakeBuddy('FakeBuddy #%d' % (i % 3), self)
            buddy.status = random.choice(('away', 'available', 'offline'))
            g.append(buddy)

        self.root_group.notify()
Exemplo n.º 4
0
    def __init__(self, username, password, hub, server=None, **options):
        common.protocol.__init__(self, username, password, hub)

        self.root_group = Group('Root', self, 'Root')
        self.buddies = ObservableDict()
        self.self_buddy = FakeBuddy('self', self)
        self.buddies['self'] = self.self_buddy
        self.conversations = {}
Exemplo n.º 5
0
    def foo():
        s = blist.BuddyListSorter()
        s.addSorter(blist.ByFakeRoot('Contacts'))
        s.addSorter(blist.ByGroup(True, 2))
        #        s.addSorter(blist.ByMobile(False))
        #        s.addSorter(blist.ByOnline(False))
        p = Protocol('aim', 'digsby01')
        root = Group(
            'root',
            p,
            'root',
            Group('root1', p, 'root1', Group('Contacts', p, 'subgroup'),
                  Buddy('abc', p)),
        )

        root_ref = ref(root)
        proto_ref = ref(p)
        sorter_ref = ref(s)

        s.set_root(root)

        gathered = s._gather()
        gathered_ref = ref(gathered)

        protocols, ids = gathered._protocol_ids
        #assert protocols == [p]
        #assert ids == ['root'], repr(ids)

        assert not sip.ispyowned(gathered)
        s._done_gather(gathered)
        del gathered
        del s
        del protocols, ids

        del p, root

        assert root_ref() is None
        assert proto_ref() is None

        assert sorter_ref() is None
        assert gathered_ref() is None
        '''
Exemplo n.º 6
0
 def __init__(self,
              username,
              password,
              msgHub,
              server=None,
              login_as='online',
              *a,
              **k):
     super(SkyLibProtocol, self).__init__(username, password, msgHub)
     self.skylib = None
     self.skyacct = None
     self.root_group = Group('Root', self, 'Root')
     self.buddies = observable_dict()
     self.conversations = observable_dict()
Exemplo n.º 7
0
    def test_group_counts(self):
        sorter = blist.BuddyListSorter()
        sorter.addSorter(blist.ByFakeRoot("Contacts"))
        sorter.addSorter(blist.ByGroup(True, 2))
        sorter.addSorter(blist.ByOnline(True, True))

        p = Protocol('aim', 'digsby01')
        sorter.set_root(
            Group(
                'root', p, 'root',
                Group('root1', p, 'root1', Buddy('abc', p), Buddy('def', p),
                      Group(
                          'Contacts',
                          p,
                          'Contacts',
                      ))))

        n = sorter._gather()
        try:
            # TODO: make 0 and 2 properties here.
            assert '0/2' in n[0].display_string
        finally:
            sorter._done_gather(n)
Exemplo n.º 8
0
    def test_filter_offline(self):
        s = blist.BuddyListSorter()
        s.addSorter(blist.ByGroup(True))
        s.addSorter(blist.ByMobile(True))
        s.addSorter(blist.ByOnline(False, False))

        s.setComparators([blist.Name])

        p = Protocol('aim', 'digsby01')

        s.set_root(
            Group('root', p, 'root', Buddy('abc', p, status='available'),
                  Buddy('def', p, status='offline')))

        root = s._gather()
        s._done_gather(root)
        del s
Exemplo n.º 9
0
    def __init__(self,
                 username,
                 password,
                 msg_hub,
                 server=('irc.penultimatefire.com', 6667)):
        common.protocol.__init__(self, username, password, msg_hub)

        assert isinstance(server, tuple)
        self.server = server

        self.nick = username

        self.rooms = dict()
        self.privates = dict()

        self.buddies = IrcBuddies(self)

        self.cmds = IRCCommander(self)

        self.socket = IrcSocket()
        self.socket.bind_event('connected', self._on_connected)
        self.socket.bind_event('incoming_line', self.incoming_line)

        self.root_group = Group('Root', self, 'Root')
Exemplo n.º 10
0
        if before_ref > after_ref:
            failures.append('    -%d: %s' %
                            (before_ref - after_ref, objrepr(args[i])))
        elif after_ref > before_ref:
            failures.append('    +%d: %s' %
                            (after_ref - before_ref, objrepr(args[i])))

    if failures:
        raise AssertionError('\n'.join(['%r leaked:' % func.__name__] +
                                       failures))


test_protocol = Protocol(u'digsby01', u'aim')
test_buddy = Buddy(u'digsby13', test_protocol)
test_root_group = Group(
    u'root', test_protocol, 'root',
    Group(u'buddies', test_protocol, 'buddies', test_buddy))


class TestSorter(TestCase):
    def test_sorts_by(self):
        import blist
        s = blist.BuddyListSorter()
        assert s.sortsBy(blist.Name)
        assert not s.sortsBy(blist.LogSize)

    def test_leaks(self):
        '''
        test that python conversion methods don't leak refcounts
        '''