Esempio n. 1
0
    def test_comparisons(self):
        all_pls = cont.Set(key='ProgrammingLanguages')
        my_pls = cont.Set(key='MyPLs')
        o_pls = cont.Set(key='OPLs')
        all_pls.add('Python')
        all_pls.add('Ruby')
        all_pls.add('PHP')
        all_pls.add('Lua')
        all_pls.add('Java')
        all_pls.add('Pascal')
        all_pls.add('C')
        all_pls.add('C++')
        all_pls.add('Haskell')
        all_pls.add('C#')
        all_pls.add('Go')

        my_pls.add('Ruby')
        my_pls.add('Python')
        my_pls.add('Lua')
        my_pls.add('Haskell')

        o_pls.add('Ruby')
        o_pls.add('Python')
        o_pls.add('Lua')
        o_pls.add('Haskell')

        # equality
        self.assertNotEqual(my_pls, all_pls)
        self.assertEqual(o_pls, my_pls)

        fruits = cont.Set(key='fruits')
        fruits.add('apples')
        fruits.add('oranges')

        # disjoint
        self.assertTrue(fruits.isdisjoint(o_pls))
        self.assertFalse(all_pls.isdisjoint(o_pls))

        # subset
        self.assertTrue(my_pls < all_pls)
        self.assertTrue(all_pls > my_pls)
        self.assertTrue(o_pls >= my_pls)
        self.assertTrue(o_pls <= my_pls)
        self.assertTrue(my_pls.issubset(all_pls))
        self.assertTrue(my_pls.issubset(o_pls))
        self.assertTrue(o_pls.issubset(my_pls))

        # union
        s = fruits.union("fruits|mypls", my_pls)
        self.assertEqual(
            set(['Ruby', 'Python', 'Lua', 'Haskell', 'apples', 'oranges']),
            s.members)

        # intersection
        inter = fruits.intersection('fruits&mypls', my_pls)
        self.assertEqual(set([]), inter.members)

        # difference
        s = fruits.difference('fruits-my_pls', my_pls)
        self.assertEqual(set(['apples', 'oranges']), s.members)
Esempio n. 2
0
    def test_common_operations(self):
        fruits = cont.Set(key='fruits')
        fruits.add('apples')
        fruits.add('oranges')
        self.assertEqual(set(['apples', 'oranges']), fruits.all())

        # remove
        fruits.discard('apples')
        self.assertEqual(set(['oranges']), fruits.all())
        self.assertRaises(KeyError, fruits.remove, 'apples')

        # in
        self.assertTrue('oranges' in fruits)
        self.assertTrue('apples' not in fruits)

        # len
        self.assertEqual(1, len(fruits))

        # pop
        self.assertEqual('oranges', fruits.pop())

        # copy
        fruits.add('apples')
        fruits.add('oranges')
        basket = fruits.copy('basket')
        self.assertEqual(set(['apples', 'oranges']), basket.all())

        # update
        o = cont.Set('o', self.client)
        o.add('kiwis')
        fruits.update(o)
        self.assertEqual(set(['kiwis', 'apples', 'oranges']), fruits.all())
Esempio n. 3
0
    def test_sunion(self):
        abc = cont.Set("abc")
        def_ = cont.Set("def")
        abc.add('a')
        abc.add('b')
        abc.add('c')
        def_.add('d')
        def_.add('e')
        def_.add('f')

        self.assertEqual(set(['a', 'b', 'c', 'd', 'e', 'f']), abc.sunion(def_))
Esempio n. 4
0
    def test_susdiff(self):
        abc = cont.Set("abc")
        def_ = cont.Set("def")
        abc.add('a')
        abc.add('b')
        abc.add('c')
        def_.add('c')
        def_.add('b')
        def_.add('f')

        self.assertEqual(set(['a',]),
                abc.sdiff(def_))
Esempio n. 5
0
    def test_sinter(self):
        abc = cont.Set("abc")
        def_ = cont.Set("def")
        abc.add('a')
        abc.add('b')
        abc.add('c')
        def_.add('d')
        def_.add('e')
        def_.add('f')

        self.assertEqual(set([]), abc.sinter(def_))
        def_.add('b')
        def_.add('c')

        self.assertEqual(set(['b', 'c']), abc.sinter(def_))
Esempio n. 6
0
    def test_methods_that_should_return_new_sets(self):
        abc = cont.Set('abc', self.client)
        for c in 'abc':
            abc.add(c)

        def_ = cont.Set('def', self.client)
        for c in 'def':
            def_.add(c)

        # new_key as a set should raise error
        # only strings are allowed as keys
        new_set = cont.Set('new_set')
        self.assertRaises(ValueError, abc.union, new_set, def_)
        self.assertRaises(ValueError, abc.difference, new_set, def_)
        self.assertRaises(ValueError, abc.intersection, new_set, def_)

        self.assert_(isinstance(abc.union('new_set', def_), cont.Set))
        self.assert_(isinstance(abc.intersection('new_set', def_), cont.Set))
        self.assert_(isinstance(abc.difference('new_set', def_), cont.Set))
Esempio n. 7
0
    def test_operations_with_updates(self):
        abc = cont.Set('abc', self.client)
        for c in 'abc':
            abc.add(c)

        def_ = cont.Set('def', self.client)
        for c in 'def':
            def_.add(c)

        # __ior__
        abc |= def_
        self.assertEqual(set(['a', 'b', 'c', 'd', 'e', 'f']), abc.all())

        abc &= def_
        self.assertEqual(set(['d', 'e', 'f']), abc.all())

        for c in 'abc':
            abc.add(c)
        abc -= def_
        self.assertEqual(set(['a', 'b', 'c']), abc.all())
Esempio n. 8
0
    def test_common_operations(self):
        fruits = cont.Set(key='fruits')
        fruits.add('apples')
        fruits.add('oranges')
        fruits.add('bananas', 'tomatoes')
        fruits.add(['strawberries', 'blackberries'])

        self.assertEqual(
            set([
                'apples', 'oranges', 'bananas', 'tomatoes', 'strawberries',
                'blackberries'
            ]), fruits.all())

        # remove
        fruits.remove('apples')
        fruits.remove('bananas', 'blackberries')
        fruits.remove(['tomatoes', 'strawberries'])

        self.assertEqual(set(['oranges']), fruits.all())

        # in
        self.assertTrue('oranges' in fruits)
        self.assertTrue('apples' not in fruits)

        # len
        self.assertEqual(1, len(fruits))

        # pop
        self.assertEqual('oranges', fruits.pop())

        # copy
        fruits.add('apples')
        fruits.add('oranges')
        basket = fruits.copy('basket')
        self.assertEqual(set(['apples', 'oranges']), basket.all())

        # update
        o = cont.Set('o', self.client)
        o.add('kiwis')
        fruits.update(o)
        self.assertEqual(set(['kiwis', 'apples', 'oranges']), fruits.all())
Esempio n. 9
0
 def test_access_redis_methods(self):
     s = cont.Set('new_set')
     s.sadd('a')
     s.sadd('b')
     s.srem('b')
     self.assertEqual('a', s.spop())
     s.sadd('a')
     self.assert_('a' in s.members)
     s.sadd('b')
     self.assertEqual(2, s.scard())
     self.assert_(s.sismember('a'))
     self.client.sadd('other_set', 'a')
     self.client.sadd('other_set', 'b')
     self.client.sadd('other_set', 'c')
     self.assert_(s.srandmember() in set(['a', 'b']))
Esempio n. 10
0
 def __init__(self, db=0):
     self.desk_pool = containers.Set(self.POOL_KEY, db=db)