1
# Copyright 2008-2015 Canonical
3
# This program is free software: you can redistribute it and/or modify
4
# it under the terms of the GNU Affero General Public License as
5
# published by the Free Software Foundation, either version 3 of the
6
# License, or (at your option) any later version.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU Affero General Public License for more details.
13
# You should have received a copy of the GNU Affero General Public License
14
# along with this program. If not, see <http://www.gnu.org/licenses/>.
16
# For further info, check http://launchpad.net/filesync-server
18
"""Test the datamanager."""
20
import backends.filesync.data.dbmanager as dbm
21
from backends.filesync.data.testing.testcase import StorageDALTestCase
24
class DataManagerTestCase(StorageDALTestCase):
25
"""Run some simple tests on the datamanager"""
27
def test_invalid_shard(self):
28
"""Make sure an exception is thrown when an invalid shard is passed"""
29
self.assertRaises(dbm.InvalidShardId, dbm.get_shard_store, "XXX")
31
def test_stores(self):
32
"""Make sure we get the stores work"""
33
#run through all the shards and try to talk to them
34
for k in dbm.get_shard_ids():
35
s = dbm.get_shard_store(k)
38
#make sure get_shard_store is working as designed
39
s1 = dbm.get_shard_store('shard0')
40
s2 = dbm.get_shard_store('shard0')
41
#even though they are different, they are the same
42
self.assertTrue(s1 is s2)
43
s3 = dbm.get_shard_store('shard1')
44
self.assertFalse(s1 is s3)