1#!/usr/bin/env python 2# Copyright 2013 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6import unittest 7 8from environment import GetAppVersion 9from test_object_store import TestObjectStore 10from object_store_creator import ObjectStoreCreator 11 12class _FooClass(object): 13 def __init__(self): pass 14 15class ObjectStoreCreatorTest(unittest.TestCase): 16 def setUp(self): 17 self._creator = ObjectStoreCreator(start_empty=False, 18 store_type=TestObjectStore, 19 disable_wrappers=True) 20 21 def testVanilla(self): 22 store = self._creator.Create(_FooClass) 23 self.assertEqual( 24 'class=_FooClass&app_version=%s' % GetAppVersion(), 25 store.namespace) 26 self.assertFalse(store.start_empty) 27 28 def testWithCategory(self): 29 store = self._creator.Create(_FooClass, category='hi') 30 self.assertEqual( 31 'class=_FooClass&category=hi&app_version=%s' % GetAppVersion(), 32 store.namespace) 33 self.assertFalse(store.start_empty) 34 35 def testWithoutAppVersion(self): 36 store = self._creator.Create(_FooClass, app_version=None) 37 self.assertEqual('class=_FooClass', store.namespace) 38 self.assertFalse(store.start_empty) 39 40 def testStartConfiguration(self): 41 store = self._creator.Create(_FooClass, start_empty=True) 42 self.assertTrue(store.start_empty) 43 store = self._creator.Create(_FooClass, start_empty=False) 44 self.assertFalse(store.start_empty) 45 self.assertRaises(ValueError, ObjectStoreCreator) 46 47 def testIllegalCharacters(self): 48 self.assertRaises(ValueError, 49 self._creator.Create, _FooClass, app_version='1&2') 50 self.assertRaises(ValueError, 51 self._creator.Create, _FooClass, category='a=&b') 52 53if __name__ == '__main__': 54 unittest.main() 55