~justin-fathomdb/nova/justinsb-openstack-api-volumes

« back to all changes in this revision

Viewing changes to nova/tests/datastore_unittest.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from nova import test
 
2
from nova import datastore
 
3
import random
 
4
 
 
5
class KeeperTestCase(test.BaseTestCase):
 
6
    """
 
7
    Basic persistence tests for Keeper datastore.
 
8
    Generalize, then use these to support
 
9
    migration to redis / cassandra / multiple stores.
 
10
    """
 
11
 
 
12
    def __init__(self, *args, **kwargs):
 
13
        """
 
14
        Create a new keeper instance for test keys.
 
15
        """
 
16
        super(KeeperTestCase, self).__init__(*args, **kwargs)
 
17
        self.keeper = datastore.Keeper('test-')
 
18
 
 
19
    def tear_down(self):
 
20
        """
 
21
        Scrub out test keeper data.
 
22
        """
 
23
        pass
 
24
 
 
25
    def test_store_strings(self):
 
26
        """
 
27
        Confirm that simple strings go in and come out safely.
 
28
        Should also test unicode strings.
 
29
        """
 
30
        randomstring = ''.join(
 
31
                [random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-')
 
32
                 for _x in xrange(20)]
 
33
                )
 
34
        self.keeper['test_string'] = randomstring
 
35
        self.assertEqual(randomstring, self.keeper['test_string'])
 
36
 
 
37
    def test_store_dicts(self):
 
38
        """
 
39
        Arbitrary dictionaries should be storable.
 
40
        """
 
41
        test_dict = {'key_one': 'value_one'}
 
42
        self.keeper['test_dict'] = test_dict
 
43
        self.assertEqual(test_dict['key_one'],
 
44
            self.keeper['test_dict']['key_one'])
 
45
 
 
46
    def test_sets(self):
 
47
        """
 
48
        A keeper dict should be self-serializing.
 
49
        """
 
50
        self.keeper.set_add('test_set', 'foo')
 
51
        test_dict = {'arbitrary': 'dict of stuff'}
 
52
        self.keeper.set_add('test_set', test_dict)
 
53
        self.assertTrue(self.keeper.set_is_member('test_set', 'foo'))
 
54
        self.assertFalse(self.keeper.set_is_member('test_set', 'bar'))
 
55
        self.keeper.set_remove('test_set', 'foo')
 
56
        self.assertFalse(self.keeper.set_is_member('test_set', 'foo'))
 
57
        rv = self.keeper.set_fetch('test_set')
 
58
        self.assertEqual(test_dict, rv.next())
 
59
        self.keeper.set_remove('test_set', test_dict)
 
60